<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[12120] CalDAVTester/trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.calendarserver.org//changeset/12120">12120</a></dd>
<dt>Author</dt> <dd>cdaboo@apple.com</dd>
<dt>Date</dt> <dd>2013-12-17 11:23:03 -0800 (Tue, 17 Dec 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>Checkpoint: CDT cross-pod tests - more to come.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#CalDAVTestertrunkscriptstestsCalDAVsharingcreatexml">CalDAVTester/trunk/scripts/tests/CalDAV/sharing-create.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestsCalDAVsharinginvitesxml">CalDAVTester/trunk/scripts/tests/CalDAV/sharing-invites.xml</a></li>
<li><a href="#CalDAVTestertrunkverifiersmultistatusItemspy">CalDAVTester/trunk/verifiers/multistatusItems.py</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/</li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/</li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/cache/</li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/</li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsdefaultcalendar1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsdefaultcalendar2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/2.xml</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadonly1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadonly2ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/2.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadonly3ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/3.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadonly4ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/4.ics</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite2ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/2.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite3ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/3.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite4ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/4.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite5ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/5.ics</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcommoninvited2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/invited2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationdecline2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationdecline2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationinvite22xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationinvite23xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-3.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationinvite2roxml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-ro.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationinvite2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationreply2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationreply2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingcommonsharedasxml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/sharedas.xml</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/direct/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingdirect1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/direct/1.xml</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingfreebusy1ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/1.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingfreebusy2ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/2.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingfreebusy3ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/3.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingfreebusy4ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/4.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingfreebusy5ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/5.ics</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharinginvites1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharinginvites2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharinginvites3xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/3.xml</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget1bxml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/1b.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget3xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/3.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget4xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/4.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget4bxml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/4b.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget5xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/5.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget5bxml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/5b.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget6xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/6.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget7xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/7.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingmultiget8xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/8.xml</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingnotificationsync1ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/1.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingnotificationsync2ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/2.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingnotificationsync3ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/3.ics</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/</li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingperuserdatasimplefreebusy1ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/1.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingperuserdatasimplefreebusy2ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/2.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingperuserdatasimplefreebusy3ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/3.ics</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/</li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies3xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/3.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies4xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/4.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies5ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/5.ics</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/</li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingrepliesaccept1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingrepliesaccept2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/2.xml</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/decline/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingrepliesdecline1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/decline/1.xml</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingsync1ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/1.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingsync2ics">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/2.ics</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/</li>
<li>CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite1xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite2xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite3xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/3.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite4xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/4.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite5xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/5.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite6xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/6.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite7xml">CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/7.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonMKCALENDARveventxml">CalDAVTester/trunk/Resource/Common/MKCALENDAR/vevent.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonMKCALENDARvtodoxml">CalDAVTester/trunk/Resource/Common/MKCALENDAR/vtodo.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharedasxml">CalDAVTester/trunk/Resource/Common/POST/sharedas.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharingdecline2podxml">CalDAVTester/trunk/Resource/Common/POST/sharingdecline2-pod.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharinginvite1xml">CalDAVTester/trunk/Resource/Common/POST/sharinginvite1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharinginvite2podxml">CalDAVTester/trunk/Resource/Common/POST/sharinginvite2-pod.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharinginvite2ropodxml">CalDAVTester/trunk/Resource/Common/POST/sharinginvite2-ro-pod.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharinginvite23podxml">CalDAVTester/trunk/Resource/Common/POST/sharinginvite23-pod.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharingremove2podxml">CalDAVTester/trunk/Resource/Common/POST/sharingremove2-pod.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharingreply2podxml">CalDAVTester/trunk/Resource/Common/POST/sharingreply2-pod.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPOSTsharingreply3podxml">CalDAVTester/trunk/Resource/Common/POST/sharingreply3-pod.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPROPFINDinvitexml">CalDAVTester/trunk/Resource/Common/PROPFIND/invite.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPROPFINDnotificationtypexml">CalDAVTester/trunk/Resource/Common/PROPFIND/notificationtype.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCommonPROPFINDpropsxml">CalDAVTester/trunk/Resource/Common/PROPFIND/props.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingcachexml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-cache.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingcalendarsxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-calendars.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingcreatexml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-create.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingdirectxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-direct.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingdropboxxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-dropbox.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingfreebusyxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-freebusy.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharinginvitesxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-invites.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingmovesxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-moves.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingmultiplexml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-multiple.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingnotificationsyncxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-notification-sync.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingperuserdataxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-peruser-data.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingperuserpropertiesxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-peruser-properties.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingpropfindxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-propfind.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingproxiesxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-proxies.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingrepliesxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-replies.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingreportsmultigetxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-reports-multiget.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingsyncxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-sync.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingunsharexml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-unshare.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsharingwebcalxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-webcal.xml</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsdefaultcalendar1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propertyupdate xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:set&gt;
+&lt;D:prop&gt;
+&lt;C:schedule-default-calendar-URL&gt;&lt;D:href&gt;$sharedcalendar:/&lt;/D:href&gt;&lt;/C:schedule-default-calendar-URL&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/D:propertyupdate&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsdefaultcalendar2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/defaultcalendar/2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propfind xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;C:schedule-default-calendar-URL/&gt;
+&lt;/D:prop&gt;
+&lt;/D:propfind&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadonly1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-notification shared-type='calendar'&gt;
+    &lt;uid&gt;&lt;/uid&gt;
+    &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+    &lt;invite-accepted/&gt;
+    &lt;access&gt;
+      &lt;read/&gt;
+    &lt;/access&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$host:$calendarhome1:/shared&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;organizer&gt;
+      &lt;href xmlns='DAV:'&gt;$principaluri1:&lt;/href&gt;
+      &lt;common-name&gt;User 01&lt;/common-name&gt;
+    &lt;/organizer&gt;
+    &lt;summary&gt;My Shared Calendar&lt;/summary&gt;
+    &lt;supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'&gt;
+      &lt;comp name=&quot;VEVENT&quot; /&gt;
+    &lt;/supported-calendar-component-set&gt;
+  &lt;/invite-notification&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadonly2ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/2.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/2.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/2.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-ro-5@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadonly3ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/3.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/3.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/3.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-ro-6@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 6
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadonly4ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/4.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/4.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-only/4.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-ro-6@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0102T100000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 6
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propfind xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:resourcetype/&gt;
+&lt;D:owner/&gt;
+&lt;D:current-user-privilege-set/&gt;
+&lt;C:schedule-calendar-transp/&gt;
+&lt;/D:prop&gt;
+&lt;/D:propfind&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite2ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/2.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/2.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/2.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-2@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite3ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/3.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/3.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/3.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-2@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT4H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 4
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite4ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/4.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/4.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/4.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-7@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0201T100000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 7
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcalendarsreadwrite5ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/5.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/5.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/calendars/read-write/5.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-7@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0201T100000
+DURATION:PT7H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 7-1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcommoninvited2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/invited2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/invited2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/invited2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;multistatus xmlns='DAV:'&gt;
+  &lt;response&gt;
+    &lt;href&gt;$calendarhome1:/shared/&lt;/href&gt;
+    &lt;propstat&gt;
+      &lt;prop&gt;
+        &lt;invite xmlns='http://calendarserver.org/ns/'&gt;
+          &lt;user&gt;
+            &lt;uid&gt;&lt;/uid&gt;
+            &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+            &lt;common-name&gt;Puser 02&lt;/common-name&gt;
+            &lt;access&gt;
+              &lt;read-write/&gt;
+            &lt;/access&gt;
+            &lt;invite-accepted/&gt;
+          &lt;/user&gt;
+        &lt;/invite&gt;
+      &lt;/prop&gt;
+      &lt;status&gt;HTTP/1.1 200 OK&lt;/status&gt;
+    &lt;/propstat&gt;
+  &lt;/response&gt;
+&lt;/multistatus&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationdecline2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationdecline2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationdecline2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationdecline2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-reply xmlns='http://calendarserver.org/ns/'&gt;
+    &lt;href xmlns='DAV:'&gt;mailto:$pemail2:&lt;/href&gt;
+    &lt;invite-declined/&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$calendarhome1:/shared&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;in-reply-to&gt;$inviteuid2:&lt;/in-reply-to&gt;
+    &lt;common-name&gt;$pusername2:&lt;/common-name&gt;
+    &lt;first-name&gt;$pfirstname2:&lt;/first-name&gt;
+    &lt;last-name&gt;$plastname2:&lt;/last-name&gt;
+  &lt;/invite-reply&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationinvite22xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-notification shared-type='calendar'&gt;
+    &lt;uid&gt;&lt;/uid&gt;
+    &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+    &lt;invite-noresponse/&gt;
+    &lt;access&gt;
+      &lt;read-write/&gt;
+    &lt;/access&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$host:$calendarhome1:/shared2&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;organizer&gt;
+      &lt;href xmlns='DAV:'&gt;$principaluri1:&lt;/href&gt;
+      &lt;common-name&gt;User 01&lt;/common-name&gt;
+    &lt;/organizer&gt;
+    &lt;summary&gt;My Shared Calendar&lt;/summary&gt;
+    &lt;supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'&gt;
+      &lt;comp name=&quot;VEVENT&quot; /&gt;
+    &lt;/supported-calendar-component-set&gt;
+  &lt;/invite-notification&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationinvite23xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-3.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-3.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-3.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-notification shared-type='calendar'&gt;
+    &lt;uid&gt;&lt;/uid&gt;
+    &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+    &lt;invite-noresponse/&gt;
+    &lt;access&gt;
+      &lt;read-write/&gt;
+    &lt;/access&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$host:$calendarhome1:/shared3&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;organizer&gt;
+      &lt;href xmlns='DAV:'&gt;$principaluri1:&lt;/href&gt;
+      &lt;common-name&gt;User 01&lt;/common-name&gt;
+    &lt;/organizer&gt;
+    &lt;summary&gt;My Shared Calendar&lt;/summary&gt;
+    &lt;supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'&gt;
+      &lt;comp name=&quot;VEVENT&quot; /&gt;
+    &lt;/supported-calendar-component-set&gt;
+  &lt;/invite-notification&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationinvite2roxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-ro.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-ro.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2-ro.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-notification shared-type='calendar'&gt;
+    &lt;uid&gt;&lt;/uid&gt;
+    &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+    &lt;invite-noresponse/&gt;
+    &lt;access&gt;
+      &lt;read/&gt;
+    &lt;/access&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$host:$calendarhome1:/shared&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;organizer&gt;
+      &lt;href xmlns='DAV:'&gt;$principaluri1:&lt;/href&gt;
+      &lt;common-name&gt;User 01&lt;/common-name&gt;
+    &lt;/organizer&gt;
+    &lt;summary&gt;My Shared Calendar&lt;/summary&gt;
+    &lt;supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'&gt;
+      &lt;comp name=&quot;VEVENT&quot; /&gt;
+    &lt;/supported-calendar-component-set&gt;
+  &lt;/invite-notification&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationinvite2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationinvite2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-notification shared-type='calendar'&gt;
+    &lt;uid&gt;&lt;/uid&gt;
+    &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+    &lt;invite-noresponse/&gt;
+    &lt;access&gt;
+      &lt;read-write/&gt;
+    &lt;/access&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$host:$calendarhome1:/shared&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;organizer&gt;
+      &lt;href xmlns='DAV:'&gt;$principaluri1:&lt;/href&gt;
+      &lt;common-name&gt;User 01&lt;/common-name&gt;
+    &lt;/organizer&gt;
+    &lt;summary&gt;My Shared Calendar&lt;/summary&gt;
+    &lt;supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'&gt;
+      &lt;comp name=&quot;VEVENT&quot; /&gt;
+    &lt;/supported-calendar-component-set&gt;
+  &lt;/invite-notification&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcommonnotificationreply2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationreply2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationreply2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/notificationreply2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-reply xmlns='http://calendarserver.org/ns/'&gt;
+    &lt;href xmlns='DAV:'&gt;mailto:$pemail2:&lt;/href&gt;
+    &lt;invite-accepted/&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$calendarhome1:/shared&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;in-reply-to&gt;$inviteuid2:&lt;/in-reply-to&gt;
+    &lt;summary&gt;The Shared Calendar&lt;/summary&gt;
+    &lt;common-name&gt;$pusername2:&lt;/common-name&gt;
+    &lt;first-name&gt;$pfirstname2:&lt;/first-name&gt;
+    &lt;last-name&gt;$plastname2:&lt;/last-name&gt;
+  &lt;/invite-reply&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingcommonsharedasxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/sharedas.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/sharedas.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/common/sharedas.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+&lt;shared-as xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;href xmlns='DAV:'&gt;&lt;/href&gt;
+&lt;/shared-as&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingdirect1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/direct/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/direct/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/direct/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propertyupdate xmlns:D=&quot;DAV:&quot;&gt;
+&lt;D:set&gt;
+&lt;D:prop&gt;
+&lt;D:group-member-set&gt;&lt;D:href&gt;$pprincipaluri2:&lt;/D:href&gt;&lt;/D:group-member-set&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/D:propertyupdate&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingfreebusy1ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/1.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/1.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/1.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:Etc/GMT+5
+X-LIC-LOCATION:Etc/GMT+5
+BEGIN:STANDARD
+DTSTART:18000101T000000
+RDATE:18000101T000000
+TZNAME:GMT+5
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:user01-uid
+DTSTART;TZID=Etc/GMT+5:$now.0:T180000
+DURATION:PT1H
+DTSTAMP:20051222T210310Z
+SUMMARY:event 1
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER;RELATED=START:-PT10M
+END:VALARM
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingfreebusy2ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/2.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/2.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/2.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,27 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:Etc/GMT+5
+X-LIC-LOCATION:Etc/GMT+5
+BEGIN:STANDARD
+DTSTART:18000101T000000
+RDATE:18000101T000000
+TZNAME:GMT+5
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:user01-uid
+DTSTART;TZID=Etc/GMT+5:$now.1:T180000
+DURATION:PT1H
+DTSTAMP:20051222T210310Z
+SUMMARY:event 1.2
+TRANSP:TRANSPARENT
+BEGIN:VALARM
+ACTION:AUDIO
+TRIGGER;RELATED=START:-PT15M
+END:VALARM
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingfreebusy3ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/3.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/3.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/3.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+METHOD:REQUEST
+BEGIN:VFREEBUSY
+UID:20060110T231240Z-4011c71-187-6f73-fb
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$pusername2::$pcuaddr2:
+ATTENDEE;CN=$pusername3::$pcuaddr3:
+DTSTART:$now.0:T000000Z
+DTSTAMP:20060309T185105Z
+DTEND:$now.4:T000000Z
+END:VFREEBUSY
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingfreebusy4ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/4.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/4.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/4.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+METHOD:REQUEST
+BEGIN:VFREEBUSY
+UID:20060110T231240Z-4011c71-187-6f73-fb
+ORGANIZER;CN=$username2::$pcuaddr2:
+ATTENDEE;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$pusername2::$pcuaddr2:
+ATTENDEE;CN=$pusername3::$pcuaddr3:
+DTSTART:$now.0:T000000Z
+DTSTAMP:20060309T185105Z
+DTEND:$now.4:T000000Z
+END:VFREEBUSY
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingfreebusy5ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/5.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/5.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/freebusy/5.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+METHOD:REQUEST
+BEGIN:VFREEBUSY
+UID:20060110T231240Z-4011c71-187-6f73-fb
+ORGANIZER;CN=$username3::$pcuaddr3:
+ATTENDEE;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$pusername2::$pcuaddr2:
+ATTENDEE;CN=$pusername3::$pcuaddr3:
+DTSTART:$now.0:T000000Z
+DTSTAMP:20060309T185105Z
+DTEND:$now.4:T000000Z
+END:VFREEBUSY
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharinginvites1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:set&gt;
+        &lt;D:href&gt;$pcuaddr2:&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:set&gt;
+    &lt;CS:set&gt;
+        &lt;D:href&gt;mailto:bogus@example.net&lt;/D:href&gt;
+        &lt;CS:summary&gt;Bogus Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:set&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharinginvites2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:remove&gt;
+        &lt;D:href&gt;mailto:bogus@example.com&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:remove&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharinginvites3xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/3.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/3.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/invites/3.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:remove&gt;
+        &lt;D:href&gt;$pcuaddr2:&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:remove&gt;
+    &lt;CS:remove&gt;
+        &lt;D:href&gt;mailto:bogus@example.com&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:remove&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:getetag/&gt;
+&lt;C:calendar-data&gt;
+&lt;C:comp name=&quot;VCALENDAR&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;C:allcomp/&gt;
+&lt;/C:comp&gt;
+&lt;/C:calendar-data&gt;
+&lt;/D:prop&gt;
+&lt;D:href&gt;$shareecalendarpath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/4.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/101.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/102.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget1bxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/1b.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/1b.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/1b.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:getetag/&gt;
+&lt;C:calendar-data&gt;
+&lt;C:comp name=&quot;VCALENDAR&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;C:allcomp/&gt;
+&lt;/C:comp&gt;
+&lt;/C:calendar-data&gt;
+&lt;/D:prop&gt;
+&lt;D:href&gt;$shareetaskspath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/4.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/101.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/102.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:getetag/&gt;
+&lt;C:calendar-data&gt;
+&lt;C:comp name=&quot;VCALENDAR&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;/C:comp&gt;
+&lt;/C:calendar-data&gt;
+&lt;/D:prop&gt;
+&lt;D:href&gt;$shareecalendarpath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/4.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget3xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/3.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/3.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/3.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:getetag/&gt;
+&lt;C:calendar-data&gt;
+&lt;C:comp name=&quot;VCALENDAR&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;C:comp name=&quot;VTIMEZONE&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;C:allcomp/&gt;
+&lt;/C:comp&gt;
+&lt;/C:comp&gt;
+&lt;/C:calendar-data&gt;
+&lt;/D:prop&gt;
+&lt;D:href&gt;$shareecalendarpath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/4.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget4xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/4.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/4.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/4.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:getetag/&gt;
+&lt;C:calendar-data&gt;
+&lt;C:comp name=&quot;VCALENDAR&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;C:comp name=&quot;VEVENT&quot;&gt;
+&lt;C:prop name=&quot;SUMMARY&quot;/&gt;
+&lt;C:prop name=&quot;UID&quot;/&gt;
+&lt;C:allcomp/&gt;
+&lt;/C:comp&gt;
+&lt;/C:comp&gt;
+&lt;/C:calendar-data&gt;
+&lt;/D:prop&gt;
+&lt;D:href&gt;$shareecalendarpath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/4.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/101.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/102.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget4bxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/4b.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/4b.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/4b.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:getetag/&gt;
+&lt;C:calendar-data&gt;
+&lt;C:comp name=&quot;VCALENDAR&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;C:comp name=&quot;VEVENT&quot;&gt;
+&lt;C:prop name=&quot;SUMMARY&quot;/&gt;
+&lt;C:prop name=&quot;UID&quot;/&gt;
+&lt;C:allcomp/&gt;
+&lt;/C:comp&gt;
+&lt;/C:comp&gt;
+&lt;/C:calendar-data&gt;
+&lt;/D:prop&gt;
+&lt;D:href&gt;$shareetaskspath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/4.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/101.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/102.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget5xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/5.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/5.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/5.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:getetag/&gt;
+&lt;C:calendar-data&gt;
+&lt;C:comp name=&quot;VCALENDAR&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;C:comp name=&quot;VEVENT&quot;&gt;
+&lt;C:prop name=&quot;SUMMARY&quot; novalue=&quot;yes&quot;/&gt;
+&lt;C:prop name=&quot;UID&quot;/&gt;
+&lt;C:allcomp/&gt;
+&lt;/C:comp&gt;
+&lt;/C:comp&gt;
+&lt;/C:calendar-data&gt;
+&lt;/D:prop&gt;
+&lt;D:href&gt;$shareecalendarpath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/4.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/101.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/102.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget5bxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/5b.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/5b.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/5b.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:getetag/&gt;
+&lt;C:calendar-data&gt;
+&lt;C:comp name=&quot;VCALENDAR&quot;&gt;
+&lt;C:allprop/&gt;
+&lt;C:comp name=&quot;VEVENT&quot;&gt;
+&lt;C:prop name=&quot;SUMMARY&quot; novalue=&quot;yes&quot;/&gt;
+&lt;C:prop name=&quot;UID&quot;/&gt;
+&lt;C:allcomp/&gt;
+&lt;/C:comp&gt;
+&lt;/C:comp&gt;
+&lt;/C:calendar-data&gt;
+&lt;/D:prop&gt;
+&lt;D:href&gt;$shareetaskspath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/4.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/101.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareetaskspath2:/102.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget6xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/6.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/6.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/6.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:allprop/&gt;
+&lt;D:href&gt;$shareecalendarpath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/4.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget7xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/7.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/7.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/7.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:propname/&gt;
+&lt;D:href&gt;$shareecalendarpath2:/1.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/2.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/3.ics&lt;/D:href&gt;
+&lt;D:href&gt;$shareecalendarpath2:/4.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingmultiget8xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/8.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/8.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/multiget/8.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,5 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:calendar-multiget xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:propname/&gt;
+&lt;D:href&gt;$shareecalendarpath2:/bogus-resource.ics&lt;/D:href&gt;
+&lt;/C:calendar-multiget&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingnotificationsync1ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/1.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/1.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/1.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-2@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingnotificationsync2ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/2.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/2.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/2.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-7@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0201T100000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 7
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingnotificationsync3ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/3.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/3.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/notification-sync/3.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-8@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0201T110000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 8
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingperuserdatasimplefreebusy1ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/1.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/1.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/1.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+METHOD:REQUEST
+BEGIN:VFREEBUSY
+UID:20060110T231240Z-4011c71-187-6f73-fb
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$pusername2::$pcuaddr2:
+ATTENDEE;CN=$pusername3::$pcuaddr3:
+DTSTART:$now.year.1:0101T000000Z
+DTSTAMP:20060309T185105Z
+DTEND:$now.year.1:0105T000000Z
+END:VFREEBUSY
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingperuserdatasimplefreebusy2ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/2.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/2.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/2.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+METHOD:REQUEST
+BEGIN:VFREEBUSY
+UID:20060110T231240Z-4011c71-187-6f73-fb
+ORGANIZER;CN=$username2::$pcuaddr2:
+ATTENDEE;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$pusername2::$pcuaddr2:
+ATTENDEE;CN=$pusername3::$pcuaddr3:
+DTSTART:$now.year.1:0101T000000Z
+DTSTAMP:20060309T185105Z
+DTEND:$now.year.1:0105T000000Z
+END:VFREEBUSY
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingperuserdatasimplefreebusy3ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/3.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/3.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/3.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+METHOD:REQUEST
+BEGIN:VFREEBUSY
+UID:20060110T231240Z-4011c71-187-6f73-fb
+ORGANIZER;CN=$username3::$pcuaddr3:
+ATTENDEE;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$pusername2::$pcuaddr2:
+ATTENDEE;CN=$pusername3::$pcuaddr3:
+DTSTART:$now.year.1:0101T000000Z
+DTSTAMP:20060309T185105Z
+DTEND:$now.year.1:0105T000000Z
+END:VFREEBUSY
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propertyupdate xmlns:D=&quot;DAV:&quot;&gt;
+&lt;D:set&gt;
+&lt;D:prop&gt;
+&lt;D:group-member-set&gt;&lt;D:href&gt;$pprincipaluri3:&lt;/D:href&gt;&lt;/D:group-member-set&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/D:propertyupdate&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propertyupdate xmlns:D=&quot;DAV:&quot;&gt;
+&lt;D:set&gt;
+&lt;D:prop&gt;
+&lt;D:group-member-set&gt;&lt;D:href&gt;$pprincipaluri4:&lt;/D:href&gt;&lt;/D:group-member-set&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/D:propertyupdate&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies3xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/3.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/3.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/3.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propertyupdate xmlns:D=&quot;DAV:&quot;&gt;
+&lt;D:set&gt;
+&lt;D:prop&gt;
+&lt;D:group-member-set/&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/D:propertyupdate&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies4xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/4.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/4.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/4.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;multistatus xmlns='DAV:'&gt;
+  &lt;response&gt;
+    &lt;href&gt;$calendarhome1:/shared/&lt;/href&gt;
+    &lt;propstat&gt;
+      &lt;prop&gt;
+        &lt;invite xmlns='http://calendarserver.org/ns/'&gt;
+          &lt;user&gt;
+            &lt;uid&gt;&lt;/uid&gt;
+            &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+            &lt;common-name&gt;Puser 02&lt;/common-name&gt;
+            &lt;access&gt;
+              &lt;read-write/&gt;
+            &lt;/access&gt;
+            &lt;invite-accepted/&gt;
+          &lt;/user&gt;
+        &lt;/invite&gt;
+      &lt;/prop&gt;
+      &lt;status&gt;HTTP/1.1 200 OK&lt;/status&gt;
+    &lt;/propstat&gt;
+  &lt;/response&gt;
+&lt;/multistatus&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingproxiessetupproxies5ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/5.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/5.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/proxies/setupproxies/5.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842@ninevah.local
+CATEGORIES:cool
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingrepliesaccept1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;multistatus xmlns='DAV:'&gt;
+  &lt;response&gt;
+    &lt;href&gt;$calendarhome1:/shared/&lt;/href&gt;
+    &lt;propstat&gt;
+      &lt;prop&gt;
+        &lt;invite xmlns='http://calendarserver.org/ns/'&gt;
+          &lt;user&gt;
+            &lt;uid&gt;&lt;/uid&gt;
+            &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+            &lt;common-name&gt;Puser 02&lt;/common-name&gt;
+            &lt;access&gt;
+              &lt;read-write/&gt;
+            &lt;/access&gt;
+            &lt;invite-accepted/&gt;
+          &lt;/user&gt;
+        &lt;/invite&gt;
+      &lt;/prop&gt;
+      &lt;status&gt;HTTP/1.1 200 OK&lt;/status&gt;
+    &lt;/propstat&gt;
+  &lt;/response&gt;
+&lt;/multistatus&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingrepliesaccept2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/accept/2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propfind xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:displayname/&gt;
+&lt;CS:shared-url/&gt;
+&lt;/D:prop&gt;
+&lt;/D:propfind&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingrepliesdecline1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/decline/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/decline/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/replies/decline/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;multistatus xmlns='DAV:'&gt;
+  &lt;response&gt;
+    &lt;href&gt;$calendarhome1:/shared/&lt;/href&gt;
+    &lt;propstat&gt;
+      &lt;prop&gt;
+        &lt;invite xmlns='http://calendarserver.org/ns/'&gt;
+          &lt;user&gt;
+            &lt;uid&gt;&lt;/uid&gt;
+            &lt;href xmlns='DAV:'&gt;$pcuaddrurn2:&lt;/href&gt;
+            &lt;common-name&gt;Puser 02&lt;/common-name&gt;
+            &lt;access&gt;
+              &lt;read-write/&gt;
+            &lt;/access&gt;
+            &lt;invite-declined/&gt;
+          &lt;/user&gt;
+        &lt;/invite&gt;
+      &lt;/prop&gt;
+      &lt;status&gt;HTTP/1.1 200 OK&lt;/status&gt;
+    &lt;/propstat&gt;
+  &lt;/response&gt;
+&lt;/multistatus&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingsync1ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/1.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/1.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/1.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-2@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingsync2ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/2.ics (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/2.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/sync/2.ics        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,29 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VTIMEZONE
+TZID:US/Eastern
+LAST-MODIFIED:20040110T032845Z
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+END:VTIMEZONE
+BEGIN:VEVENT
+UID:54E181BC7CCC373042B28842-2@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT4H
+DTSTAMP:20051222T205953Z
+SUMMARY:event 4
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:set&gt;
+        &lt;D:href&gt;$pcuaddr3:&lt;/D:href&gt;
+        &lt;CS:common-name&gt;Display Name 03&lt;/CS:common-name&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:set&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/2.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/2.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-notification shared-type='calendar'&gt;
+    &lt;uid&gt;&lt;/uid&gt;
+    &lt;href xmlns='DAV:'&gt;$pcuaddrurn3:&lt;/href&gt;
+    &lt;invite-noresponse/&gt;
+    &lt;access&gt;
+      &lt;read-write/&gt;
+    &lt;/access&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$host:$calendarhome1:/shared&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;organizer&gt;
+      &lt;href xmlns='DAV:'&gt;$principaluri1:&lt;/href&gt;
+      &lt;common-name&gt;User 01&lt;/common-name&gt;
+    &lt;/organizer&gt;
+    &lt;summary&gt;My Shared Calendar&lt;/summary&gt;
+    &lt;supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'&gt;
+      &lt;comp name=&quot;VEVENT&quot; /&gt;
+    &lt;/supported-calendar-component-set&gt;
+  &lt;/invite-notification&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite3xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/3.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/3.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/3.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+&lt;invite-reply xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;href xmlns='DAV:'&gt;mailto:$pemail3:&lt;/href&gt;
+  &lt;invite-accepted/&gt;
+  &lt;hosturl&gt;
+    &lt;href xmlns='DAV:'&gt;$host:$calendarhome1:/shared&lt;/href&gt;
+  &lt;/hosturl&gt;
+  &lt;in-reply-to&gt;$inviteuid2:&lt;/in-reply-to&gt;
+  &lt;summary&gt;The Shared Calendar&lt;/summary&gt;
+  &lt;common-name&gt;$pusername3:&lt;/common-name&gt;
+  &lt;first-name&gt;$pfirstname3:&lt;/first-name&gt;
+  &lt;last-name&gt;$plastname3:&lt;/last-name&gt;
+&lt;/invite-reply&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite4xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/4.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/4.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/4.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+&lt;shared-as xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;href xmlns='DAV:'&gt;&lt;/href&gt;
+&lt;/shared-as&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite5xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/5.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/5.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/5.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propertyupdate xmlns:D=&quot;DAV:&quot;&gt;
+&lt;D:set&gt;
+&lt;D:prop&gt;
+&lt;D:displayname&gt;Sharee Display Name&lt;/D:displayname&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/D:propertyupdate&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite6xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/6.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/6.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/6.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:remove&gt;
+        &lt;D:href&gt;$pcuaddr3:&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:remove&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpodsharingunshareshareruninvite7xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/7.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/7.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV-pod/sharing/unshare/shareruninvite/7.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,22 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;notification xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;dtstamp&gt;&lt;/dtstamp&gt;
+  &lt;invite-notification shared-type='calendar'&gt;
+    &lt;uid&gt;&lt;/uid&gt;
+    &lt;href xmlns='DAV:'&gt;$pcuaddrurn3:&lt;/href&gt;
+    &lt;invite-deleted/&gt;
+    &lt;access&gt;
+      &lt;read-write/&gt;
+    &lt;/access&gt;
+    &lt;hosturl&gt;
+      &lt;href xmlns='DAV:'&gt;$host:$calendarhome1:/shared&lt;/href&gt;
+    &lt;/hosturl&gt;
+    &lt;organizer&gt;
+      &lt;href xmlns='DAV:'&gt;$principaluri1:&lt;/href&gt;
+      &lt;common-name&gt;User 01&lt;/common-name&gt;
+    &lt;/organizer&gt;
+    &lt;summary&gt;Sharee Display Name&lt;/summary&gt;
+    &lt;supported-calendar-component-set xmlns='urn:ietf:params:xml:ns:caldav'&gt;
+      &lt;comp name=&quot;VEVENT&quot; /&gt;
+    &lt;/supported-calendar-component-set&gt;
+  &lt;/invite-notification&gt;
+&lt;/notification&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonMKCALENDARveventxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/MKCALENDAR/vevent.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/MKCALENDAR/vevent.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/MKCALENDAR/vevent.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:mkcalendar xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:set&gt;
+&lt;D:prop&gt;
+&lt;C:supported-calendar-component-set&gt;
+&lt;C:comp name=&quot;VEVENT&quot;/&gt;
+&lt;/C:supported-calendar-component-set&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/C:mkcalendar&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonMKCALENDARvtodoxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/MKCALENDAR/vtodo.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/MKCALENDAR/vtodo.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/MKCALENDAR/vtodo.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;C:mkcalendar xmlns:D=&quot;DAV:&quot; xmlns:C=&quot;urn:ietf:params:xml:ns:caldav&quot;&gt;
+&lt;D:set&gt;
+&lt;D:prop&gt;
+&lt;C:supported-calendar-component-set&gt;
+&lt;C:comp name=&quot;VTODO&quot;/&gt;
+&lt;/C:supported-calendar-component-set&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/C:mkcalendar&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharedasxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharedas.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharedas.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharedas.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+&lt;shared-as xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;href xmlns='DAV:'&gt;&lt;/href&gt;
+&lt;/shared-as&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharingdecline2podxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharingdecline2-pod.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharingdecline2-pod.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharingdecline2-pod.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+&lt;invite-reply xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;href xmlns='DAV:'&gt;mailto:$pemail2:&lt;/href&gt;
+  &lt;invite-declined/&gt;
+  &lt;hosturl&gt;
+    &lt;href xmlns='DAV:'&gt;$calendarhome1:/shared&lt;/href&gt;
+  &lt;/hosturl&gt;
+  &lt;in-reply-to&gt;$inviteuid2:&lt;/in-reply-to&gt;
+  &lt;summary&gt;The Shared Calendar&lt;/summary&gt;
+  &lt;common-name&gt;$pusername2:&lt;/common-name&gt;
+  &lt;first-name&gt;$pfirstname2:&lt;/first-name&gt;
+  &lt;last-name&gt;$plastname2:&lt;/last-name&gt;
+&lt;/invite-reply&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharinginvite1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharinginvite1.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharinginvite1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharinginvite1.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:set&gt;
+        &lt;D:href&gt;$cuaddr1:&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:set&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharinginvite2podxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharinginvite2-pod.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharinginvite2-pod.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharinginvite2-pod.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:set&gt;
+        &lt;D:href&gt;$pcuaddr2:&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:set&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharinginvite2ropodxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharinginvite2-ro-pod.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharinginvite2-ro-pod.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharinginvite2-ro-pod.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:set&gt;
+        &lt;D:href&gt;$pcuaddr2:&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read/&gt;
+    &lt;/CS:set&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharinginvite23podxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharinginvite23-pod.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharinginvite23-pod.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharinginvite23-pod.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:set&gt;
+        &lt;D:href&gt;$pcuaddr2:&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:set&gt;
+    &lt;CS:set&gt;
+        &lt;D:href&gt;$pcuaddr3:&lt;/D:href&gt;
+        &lt;CS:summary&gt;My Shared Calendar&lt;/CS:summary&gt;
+        &lt;CS:read/&gt;
+    &lt;/CS:set&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharingremove2podxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharingremove2-pod.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharingremove2-pod.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharingremove2-pod.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,7 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;CS:share xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+    &lt;CS:remove&gt;
+        &lt;D:href&gt;$pcuaddr2:&lt;/D:href&gt;
+        &lt;CS:read-write/&gt;
+    &lt;/CS:remove&gt;
+&lt;/CS:share&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharingreply2podxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharingreply2-pod.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharingreply2-pod.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharingreply2-pod.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+&lt;invite-reply xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;href xmlns='DAV:'&gt;mailto:$pemail2:&lt;/href&gt;
+  &lt;invite-accepted/&gt;
+  &lt;hosturl&gt;
+    &lt;href xmlns='DAV:'&gt;$hosturl2:&lt;/href&gt;
+  &lt;/hosturl&gt;
+  &lt;in-reply-to&gt;$inviteuid2:&lt;/in-reply-to&gt;
+  &lt;summary&gt;The Shared Calendar&lt;/summary&gt;
+  &lt;common-name&gt;$pusername2:&lt;/common-name&gt;
+  &lt;first-name&gt;$pfirstname2:&lt;/first-name&gt;
+  &lt;last-name&gt;$plastname2:&lt;/last-name&gt;
+&lt;/invite-reply&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPOSTsharingreply3podxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/POST/sharingreply3-pod.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/POST/sharingreply3-pod.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharingreply3-pod.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;?xml version='1.0' encoding='UTF-8'?&gt;
+&lt;invite-reply xmlns='http://calendarserver.org/ns/'&gt;
+  &lt;href xmlns='DAV:'&gt;mailto:$pemail3:&lt;/href&gt;
+  &lt;invite-accepted/&gt;
+  &lt;hosturl&gt;
+    &lt;href xmlns='DAV:'&gt;$hosturl3:&lt;/href&gt;
+  &lt;/hosturl&gt;
+  &lt;in-reply-to&gt;$inviteuid3:&lt;/in-reply-to&gt;
+  &lt;summary&gt;The Shared Calendar&lt;/summary&gt;
+  &lt;common-name&gt;$pusername3:&lt;/common-name&gt;
+  &lt;first-name&gt;$pfirstname3:&lt;/first-name&gt;
+  &lt;last-name&gt;$plastname3:&lt;/last-name&gt;
+&lt;/invite-reply&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPROPFINDinvitexml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/PROPFIND/invite.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/PROPFIND/invite.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/PROPFIND/invite.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propfind xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+&lt;D:prop&gt;
+&lt;CS:invite/&gt;
+&lt;/D:prop&gt;
+&lt;/D:propfind&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPROPFINDnotificationtypexml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/PROPFIND/notificationtype.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/PROPFIND/notificationtype.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/PROPFIND/notificationtype.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propfind xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+&lt;D:prop&gt;
+&lt;CS:notificationtype/&gt;
+&lt;/D:prop&gt;
+&lt;/D:propfind&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCommonPROPFINDpropsxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/Common/PROPFIND/props.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/Common/PROPFIND/props.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/Common/PROPFIND/props.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:propfind xmlns:D=&quot;DAV:&quot; xmlns:CS=&quot;http://calendarserver.org/ns/&quot;&gt;
+&lt;D:prop&gt;
+&lt;D:creationdate/&gt;
+&lt;D:current-user-privilege-set/&gt;
+&lt;D:displayname/&gt;
+&lt;D:getcontenttype/&gt;
+&lt;CS:getctag/&gt;
+&lt;D:getetag/&gt;
+&lt;D:getlastmodified/&gt;
+&lt;D:resource-id/&gt;
+&lt;D:resourcetype/&gt;
+&lt;D:supported-report-set/&gt;
+&lt;D:sync-token/&gt;
+&lt;/D:prop&gt;
+&lt;/D:propfind&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestsCalDAVsharingcreatexml"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-create.xml (12119 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-create.xml        2013-12-17 17:41:24 UTC (rev 12119)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-create.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -18,7 +18,7 @@
</span><span class="cx">  limitations under the License.
</span><span class="cx">  --&gt;
</span><span class="cx"> 
</span><del>-&lt;caldavtest ignore-all='yes'&gt;
</del><ins>+&lt;caldavtest&gt;
</ins><span class="cx">         &lt;description&gt;Test calendar sharing replies&lt;/description&gt;
</span><span class="cx"> 
</span><span class="cx">         &lt;require-feature&gt;
</span></span></pre></div>
<a id="CalDAVTestertrunkscriptstestsCalDAVsharinginvitesxml"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-invites.xml (12119 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-invites.xml        2013-12-17 17:41:24 UTC (rev 12119)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-invites.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -526,10 +526,6 @@
</span><span class="cx">                         &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot; print-response='no'&gt;
</span><span class="cx">                                 &lt;method&gt;DELETE&lt;/method&gt;
</span><span class="cx">                                 &lt;ruri&gt;$shareecalendar2:/&lt;/ruri&gt;
</span><del>-                                &lt;data substitutions='yes'&gt;
-                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
-                                        &lt;filepath&gt;Resource/CalDAV/sharing/invites/double/5.xml&lt;/filepath&gt;
-                                &lt;/data&gt;
</del><span class="cx">                                 &lt;verify&gt;
</span><span class="cx">                                         &lt;callback&gt;statusCode&lt;/callback&gt;
</span><span class="cx">                                 &lt;/verify&gt;
</span></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingcachexml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-cache.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-cache.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-cache.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,412 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest ignore-all='yes'&gt;
+        &lt;description&gt;Test calendar sharing interaction with cache&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Generate invite' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Create&lt;/description&gt;
+                        &lt;request end-delete=&quot;yes&quot;&gt;
+                                &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND Home to cache it&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notcontains&lt;/name&gt;
+                                                &lt;value&gt;user02&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND Home check&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;contains&lt;/name&gt;
+                                                &lt;value&gt;puser02&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;POST uninvite&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND Home check&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notcontains&lt;/name&gt;
+                                                &lt;value&gt;puser02&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Send first reply'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND Home check&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/sharedas.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}href&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND Home check&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$shareecalendar:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Delete shared&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND Home check&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;nohrefs&lt;/name&gt;
+                                                &lt;value&gt;$shareecalendar:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED - need to do this cycle of accept/delete twice to regress properly&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/sharedas.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}href&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND Home check&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$shareecalendar:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10' ignore='no'&gt;
+                        &lt;description&gt;Delete shared&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND Home check&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;nohrefs&lt;/name&gt;
+                                                &lt;value&gt;$shareecalendar:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingcalendarsxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-calendars.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-calendars.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-calendars.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,574 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing calendars&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Read-write calendar'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Shared calendar exists&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notexists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4a'&gt;
+                        &lt;description&gt;Shared calendar exists Depth:1&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;parent&lt;/name&gt;
+                                                &lt;value&gt;$multistatus-response-prefix:[^{DAV:}href=$sharedcalendar:/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}resourcetype/{DAV:}collection&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notexists&lt;/name&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin&lt;/value&gt;
+                                                &lt;value&gt;$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4b'&gt;
+                        &lt;description&gt;Shared calendar has invite property&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}invite&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}invite&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}organizer&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}organizer/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}organizer/{http://calendarserver.org/ns/}common-name[=$username1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}user&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}user/{DAV:}href[=$pcuaddrurn2:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}user/{http://calendarserver.org/ns/}access/{http://calendarserver.org/ns/}read-write&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}user/{http://calendarserver.org/ns/}invite-accepted&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Original calendar unchanged&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}opaque&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Sharee creates event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Sharer sees event&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-write/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Sharer changes event&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9'&gt;
+                        &lt;description&gt;Sharee sees changed event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-write/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;Sharer creates event&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/4.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11'&gt;
+                        &lt;description&gt;Sharee sees new event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-write/4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;Sharee changes event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/5.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13'&gt;
+                        &lt;description&gt;Sharer sees changed event&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-write/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Default calendar cannot be shared calendar' ignore='no'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Set property on Inbox&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pinboxpath2:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/defaultcalendar/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Verify property on inbox&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pinboxpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/defaultcalendar/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;&lt;![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$&lt;href xmlns=&quot;DAV:&quot;&gt;$pcalendarpath2:&lt;/href&gt;]]&gt;&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Change to read-only calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-ro-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-only/1.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Shared calendar exists&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notexists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Create event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/3.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-only/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Sharer creates event&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/4.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-only/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Sharee sees new event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/4.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-only/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Sharee cannot change event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/4.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-only/4.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+        
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingcreatexml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-create.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-create.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-create.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,220 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing replies&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Create calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request end-delete=&quot;yes&quot;&gt;
+                                &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;Change the color&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/direct/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{http://apple.com/ns/ical/}calendar-color&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Generate invite' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Accept' ignore='no'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;Check accept status&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Check Sharer notification collection&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationreply2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Shared calendar exists without color&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/direct/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badprops&lt;/name&gt;
+                                                &lt;value&gt;{http://apple.com/ns/ical/}calendar-color&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingdirectxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-direct.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-direct.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-direct.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,762 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing calendars&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request print-response='no'&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Read-write calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Add puser02 as read write for user01&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/direct/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Sharee does direct share&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/?action=share&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Shared calendar exists&lt;/description&gt;
+                        &lt;pause/&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notexists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Original calendar unchanged&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}opaque&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee creates event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Sharer sees event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-write/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Sharer changes event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Sharee sees changed event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-write/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9'&gt;
+                        &lt;description&gt;Sharer creates event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/4.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;Sharee sees new event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-write/4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11'&gt;
+                        &lt;description&gt;Sharee changes event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/5.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;Sharer sees changed event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/calendars/read-write/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13'&gt;
+                        &lt;description&gt;Sharee does direct share again&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/?action=share&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14'&gt;
+                        &lt;description&gt;Shared calendar exists&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notexists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Change to read-only calendar' ignore='yes'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Clear user02 as read-write proxy for user01&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/calendaruserproxy/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;Add user02 as read-only for user01&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-read/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/calendaruserproxy/3.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Shared calendar exists&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/calendars/read-only/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notexists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Create event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/3.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/calendars/read-only/5.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharer creates event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/4.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/calendars/read-only/6.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Sharee sees new event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/4.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/calendars/read-only/6.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Sharee cannot change event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/4.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/calendars/read-only/7.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Removal of direct share' ignore='yes'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Remove direct share&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Shared calendar does not exist&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/calendars/read-only/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;404&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharer calendar does exist&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/calendars/read-only/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;3&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Direct share not allowed' ignore='yes'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Clear user02 as read-only proxy for user01&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-read/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/calendaruserproxy/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Sharee does direct share&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/?action=share&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Using non __uids__ path' ignore='yes'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Add user02 as read write for user01&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/calendaruserproxy/3.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Sharee does direct share&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhomealt1:/shared/?action=share&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Shared calendar exists&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/calendars/read-write/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notexists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Sharee creates event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/9.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/calendars/read-write/9.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharer sees event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/9.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/calendars/read-write/9.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Remove direct share&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;Clear user02 as read-write proxy for user01&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/calendaruserproxy/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Calendar color' ignore='yes'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Add user02 as read write for user01&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/calendaruserproxy/3.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;Change the color&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhomealt1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/direct/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{http://apple.com/ns/ical/}calendar-color&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee does direct share&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhomealt1:/shared/?action=share&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Shared calendar exists with color&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/direct/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://apple.com/ns/ical/}calendar-color[=#00112233]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;Remove direct share&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Clear user02 as read-write proxy for user01&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/calendaruserproxy/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end/&gt;
+        
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingdropboxxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-dropbox.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-dropbox.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-dropbox.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,323 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest ignore-all=&quot;no&quot;&gt;
+        &lt;description&gt;Test Quota support on the server for shared calendars&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;dropbox&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid4:&quot; pswd=&quot;$pswd4:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath4:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot; end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome2:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Setup two sharees'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome2:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite234.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee 2 notification collection&lt;/description&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath3:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid23:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl23:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee 2 replies ACCEPTED&lt;/description&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome3:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply23.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Check Sharee 3 notification collection&lt;/description&gt;
+                        &lt;request user=&quot;$userid4:&quot; pswd=&quot;$pswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath4:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$userid4:&quot; pswd=&quot;$pswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath4:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid24:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl24:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee 3 replies ACCEPTED&lt;/description&gt;
+                        &lt;request user=&quot;$userid4:&quot; pswd=&quot;$pswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome4:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply24.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar4:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Clean out notifications&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath3:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$userid4:&quot; pswd=&quot;$pswd4:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath4:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='PUT by User 2' ignore='no'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;PUT event by user 2&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome2:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/dropbox/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;PUT attachment by user 2&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$dropboxpath2:/54E181BC7CCC373042B28842/2.xml&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/dropbox/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;Attachment exists for User 2&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$dropboxpath2:/54E181BC7CCC373042B28842/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Attachment exists for User 3&lt;/description&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$dropboxpath2:/54E181BC7CCC373042B28842/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;PUT attachment by user 3&lt;/description&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$dropboxpath2:/54E181BC7CCC373042B28842/3.xml&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/dropbox/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Attachments exists for User 4&lt;/description&gt;
+                        &lt;request user=&quot;$userid4:&quot; pswd=&quot;$pswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$dropboxpath2:/54E181BC7CCC373042B28842/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;2&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;PUT attachment by user 4&lt;/description&gt;
+                        &lt;request user=&quot;$userid4:&quot; pswd=&quot;$pswd4:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$dropboxpath2:/54E181BC7CCC373042B28842/3.xml&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/dropbox/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;DELETE attachment by user 2&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$dropboxpath2:/54E181BC7CCC373042B28842/2.xml&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9'&gt;
+                        &lt;description&gt;DELETE attachment by user 2&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$dropboxpath2:/54E181BC7CCC373042B28842/3.xml&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$notificationpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$notificationpath3:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$notificationpath4:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingfreebusyxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-freebusy.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-freebusy.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-freebusy.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,419 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest ignore-all='no'&gt;
+        &lt;description&gt;Test calendar sharing per-user data&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;POST&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/POST/sharinginvite23-pod.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;GETNEW&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;POST&lt;/method&gt;
+                        &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                        &lt;data substitutions='yes'&gt;
+                                &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$sharedcalendar2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                        &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                        &lt;method&gt;GETNEW&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                &lt;variable&gt;$inviteuid3:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$hosturl3:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                        &lt;method&gt;POST&lt;/method&gt;
+                        &lt;ruri&gt;$pcalendarhome3:/&lt;/ruri&gt;
+                        &lt;data substitutions='yes'&gt;
+                                &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/POST/sharingreply3-pod.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$sharedcalendar3:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$sharedcalendar3:/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Initial event'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;User01 store to shared&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/freebusy/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;User01 freebusy&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$outboxpath1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/freebusy/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;User02 freebusy&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$poutboxpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/freebusy/4.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;User03 freebusy&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$poutboxpath3:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/freebusy/5.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.0:T230000Z/$now.1:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Changed event'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;User02 store to shared&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/1.ics&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/freebusy/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;User01 freebusy&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$outboxpath1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/freebusy/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.1:T230000Z/$now.2:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.1:T230000Z/$now.2:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;User02 freebusy&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$poutboxpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/freebusy/4.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.1:T230000Z/$now.2:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.1:T230000Z/$now.2:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;User03 freebusy&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$poutboxpath3:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/freebusy/5.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.1:T230000Z/$now.2:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.1:T230000Z/$now.2:T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharinginvitesxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-invites.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-invites.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-invites.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,575 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing invitations&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared2/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared3/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Send new invite'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Notification type property&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/notificationtype.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}notificationtype/{http://calendarserver.org/ns/}invite-notification[@shared-type=&quot;calendar&quot;]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Update new invite'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-ro-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2-ro.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Notification type property&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/notificationtype.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{http://calendarserver.org/ns/}notificationtype/{http://calendarserver.org/ns/}invite-notification[@shared-type=&quot;calendar&quot;]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Uninvite new invite'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Attempt broken invite'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/invites/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;424&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;403&lt;/name&gt;
+                                                &lt;value&gt;mailto:bogus@example.net&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Delete new invite'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;DELETE collection&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Uninvite invalid invite'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request end-delete=&quot;yes&quot;&gt;
+                                &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;POST valid invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;POST single invalid uninvitate&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/invites/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;POST invalid and valid uninvitate&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/invites/3.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;200&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;403&lt;/name&gt;
+                                                &lt;value&gt;mailto:bogus@example.com&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;DELETE collection&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Double invites'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation #2&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared2/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2-2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;POST invitation #3&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;DELAY&lt;/method&gt;
+                                &lt;ruri&gt;1&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared3/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 2&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2-3.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED #2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/sharedas.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}href&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Sharee deletes shared calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;Remove invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared2/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8' ignore='no'&gt;
+                        &lt;description&gt;Remove invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared3/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingmovesxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-moves.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-moves.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-moves.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,546 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest ignore-all='no'&gt;
+        &lt;description&gt;Test calendar sharing and MOVE&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request print-response='no'&gt;
+                        &lt;method&gt;POST&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/POST/sharinginvite2.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                        &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                        &lt;method&gt;GETNEW&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                        &lt;method&gt;POST&lt;/method&gt;
+                        &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                        &lt;data substitutions='yes'&gt;
+                                &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/POST/sharingreply2.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$sharedcalendar2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='OK event to shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User02 store to personal calendar&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/moves/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User02 moves event to shared calendar&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;MOVE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/1.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Destination&lt;/name&gt;
+                                        &lt;value&gt;$host:$sharedcalendar2:/1.ics&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User02 sees event&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;User01 sees event&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        
+        &lt;test-suite name='Bad event to shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User02 store to personal calendar&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; end-delete=&quot;yes&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/moves/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User02 moves event to shared calendar&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;MOVE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/2.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Destination&lt;/name&gt;
+                                        &lt;value&gt;$host:$sharedcalendar2:/2.ics&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='OK event from shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to shared calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/3.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/moves/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User02 moves event from shared calendar&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;MOVE&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/3.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Destination&lt;/name&gt;
+                                        &lt;value&gt;$host:$calendarpath2:/3.ics&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User02 sees event&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/3.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/3.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;User01 sees no event&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/3.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;404&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        
+        &lt;test-suite name='Bad event to shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to shared calendar&lt;/description&gt;
+                        &lt;request end-delete=&quot;yes&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/4.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/moves/4.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User02 moves event from shared calendar&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;MOVE&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/4.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Destination&lt;/name&gt;
+                                        &lt;value&gt;$host:$calendarpath2:/4.ics&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='OK owner event to shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to personal calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/5.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/moves/5.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User01 moves event to shared calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;MOVE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/5.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Destination&lt;/name&gt;
+                                        &lt;value&gt;$host:$calendarhome1:/shared/5.ics&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User02 sees event&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/5.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;User01 sees event&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/5.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/5.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        
+        &lt;test-suite name='OK owner event with organizer to shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to personal calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/6.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/moves/6.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User01 moves event to shared calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;MOVE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/6.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Destination&lt;/name&gt;
+                                        &lt;value&gt;$host:$calendarhome1:/shared/6.ics&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User02 sees event&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/6.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/6.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;User01 sees event&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/6.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/6.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/6.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='OK owner event from shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to shared calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/7.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/moves/7.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User01 moves event from shared calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;MOVE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/7.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Destination&lt;/name&gt;
+                                        &lt;value&gt;$host:$calendarpath1:/7.ics&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User02 does not see event&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/7.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;404&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;User01 sees event&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/7.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/7.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/7.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        
+        &lt;test-suite name='OK owner event with organizer from shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to shared calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/8.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/moves/8.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User01 moves event from shared calendar&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;MOVE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/8.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Destination&lt;/name&gt;
+                                        &lt;value&gt;$host:$calendarpath1:/8.ics&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User02 does not see event&lt;/description&gt;
+                        &lt;request user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/8.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;404&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;User01 sees event&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/8.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/moves/8.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/8.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingmultiplexml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-multiple.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-multiple.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-multiple.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,429 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing invitations&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared1/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared2/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Send new invite #1'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Initial collection count&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabcount&gt;$calendarhome2count:&lt;/grabcount&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared1/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;One more calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;$calendarhome2count:+1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;One more calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Send new invite #2'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Initial collection count&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabcount&gt;$calendarhome2count:&lt;/grabcount&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared2/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 2&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;One more calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;$calendarhome2count:+1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;One more calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Uninvite #2'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Initial collection count&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabcount&gt;$calendarhome2count:&lt;/grabcount&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared2/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;2&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;One less calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;$calendarhome2count:-1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;One less calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;404&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Existing calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingnotificationsyncxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-notification-sync.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-notification-sync.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-notification-sync.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,1410 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing calendars&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+                &lt;feature&gt;sync-report&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request print-response='no'&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='initial tokens - depth 1' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;initial query - grab token&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;totalcount&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;initial query - grab token&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;totalcount&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Read-write calendar - depth 1' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;new resource&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;totalcount&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$href2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Remove notification&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;new resource&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$href2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='initial tokens - depth infinity' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;require-feature&gt;
+                                &lt;feature&gt;sync-report-home&lt;/feature&gt;
+                        &lt;/require-feature&gt;
+                        &lt;description&gt;initial query - grab token&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$dropbox:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;require-feature&gt;
+                                &lt;feature&gt;sync-report-home&lt;/feature&gt;
+                        &lt;/require-feature&gt;
+                        &lt;description&gt;initial query - grab token&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$dropbox:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Read-write calendar - depth infinity - sharee delete'&gt;
+                &lt;require-feature&gt;
+                        &lt;feature&gt;sync-report-home&lt;/feature&gt;
+                &lt;/require-feature&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;new resource&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;graburi&gt;basename($notification2:)&lt;/graburi&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;totalcount&lt;/name&gt;
+                                                &lt;value&gt;2&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Remove notification&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;deleted resource&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/$notification2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;new calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Sharee removes calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8' ignore='no'&gt;
+                        &lt;description&gt;removed calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Read-write calendar - depth infinity - sharer removes'&gt;
+                &lt;require-feature&gt;
+                        &lt;feature&gt;sync-report-home&lt;/feature&gt;
+                &lt;/require-feature&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;new resource&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;graburi&gt;basename($notification2:)&lt;/graburi&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;totalcount&lt;/name&gt;
+                                                &lt;value&gt;2&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Remove notification&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;deleted resource&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/$notification2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;new calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8' ignore='no'&gt;
+                        &lt;description&gt;removed calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9' ignore='no'&gt;
+                        &lt;description&gt;no calendar change&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;totalcount&lt;/name&gt;
+                                                &lt;value&gt;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Shared calendar data - depth infinity'&gt;
+                &lt;require-feature&gt;
+                        &lt;feature&gt;sync-report-home&lt;/feature&gt;
+                &lt;/require-feature&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Sharer creates event&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/notification-sync/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;new resource&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Remove notification&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;new calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;Grab sharer's sync token'&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Sharer creates event&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/notification-sync/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9' ignore='no'&gt;
+                        &lt;description&gt;Sharer change&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                                &lt;value&gt;shared/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10' ignore='no'&gt;
+                        &lt;description&gt;Sharee change&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11'&gt;
+                        &lt;description&gt;Sharee creates event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/3.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/notification-sync/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12' ignore='no'&gt;
+                        &lt;description&gt;Sharer change&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                                &lt;value&gt;shared/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13' ignore='no'&gt;
+                        &lt;description&gt;Sharee change&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14'&gt;
+                        &lt;description&gt;Sharer deletes event&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/3.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='15' ignore='no'&gt;
+                        &lt;description&gt;Sharer change&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16' ignore='no'&gt;
+                        &lt;description&gt;Sharee change&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='17'&gt;
+                        &lt;description&gt;Sharee deletes event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='18' ignore='no'&gt;
+                        &lt;description&gt;Sharer change&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='19' ignore='no'&gt;
+                        &lt;description&gt;Sharee change&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='20'&gt;
+                        &lt;description&gt;Sharee removes calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='21' ignore='no'&gt;
+                        &lt;description&gt;removed calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Response cache' ignore='no'&gt;
+                &lt;require-feature&gt;
+                        &lt;feature&gt;sync-report-home&lt;/feature&gt;
+                &lt;/require-feature&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of current sync-token - direct&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/sync-token.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;$verify-property-prefix:/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of home&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/sync-token.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;contains&lt;/name&gt;
+                                                &lt;value&gt;$synctoken1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of home again - to cache it&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/sync-token.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;contains&lt;/name&gt;
+                                                &lt;value&gt;$synctoken1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of home - token changed&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/sync-token.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notcontains&lt;/name&gt;
+                                                &lt;value&gt;$synctoken1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of new sync-token - direct&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/sync-token.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;$verify-property-prefix:/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of home&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/sync-token.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;contains&lt;/name&gt;
+                                                &lt;value&gt;$synctoken2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notcontains&lt;/name&gt;
+                                                &lt;value&gt;$synctoken1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of home again - to cache it&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/sync-token.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;contains&lt;/name&gt;
+                                                &lt;value&gt;$synctoken2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notcontains&lt;/name&gt;
+                                                &lt;value&gt;$synctoken1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9'&gt;
+                        &lt;description&gt;Remove notification&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of home - token changed&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/sync-token.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;dataString&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notcontains&lt;/name&gt;
+                                                &lt;value&gt;$synctoken1:&lt;/value&gt;
+                                                &lt;value&gt;$synctoken2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingperuserdataxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-peruser-data.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-peruser-data.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-peruser-data.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,711 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest ignore-all='no'&gt;
+        &lt;description&gt;Test calendar sharing per-user data&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request print-response='no'&gt;
+                        &lt;method&gt;POST&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/POST/sharinginvite23-pod.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                        &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                        &lt;method&gt;GETNEW&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                        &lt;method&gt;POST&lt;/method&gt;
+                        &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                        &lt;data substitutions='yes'&gt;
+                                &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$sharedcalendar2:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                        &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                        &lt;method&gt;GETNEW&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                &lt;variable&gt;$inviteuid3:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$hosturl3:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                        &lt;method&gt;POST&lt;/method&gt;
+                        &lt;ruri&gt;$pcalendarhome3:/&lt;/ruri&gt;
+                        &lt;data substitutions='yes'&gt;
+                                &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/POST/sharingreply3-pod.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;grabelement&gt;
+                                &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                &lt;variable&gt;$sharedcalendar3:&lt;/variable&gt;
+                        &lt;/grabelement&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Initial event' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to shared&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-data/simple-put/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User02 sees event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/simple-put/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User03 sees event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar3:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/simple-put/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='User01 changed event' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to shared&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-data/simple-change01/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User02 sees event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/simple-change01/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User03 sees event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar3:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/simple-change01/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='User02 changed event' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User02 store to shared&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-data/simple-change02/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User01 sees event&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/simple-change02/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User03 sees event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar3:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/simple-change02/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Different freebusy' ignore='no'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Set properties on new calendars&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar3:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User01 freebusy&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$outboxpath1:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User02 freebusy&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$poutboxpath2:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;User03 freebusy&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$poutboxpath3:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='User01 complex recurring store' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 store to shared&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-data/complex-put/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User02 sees event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/complex-put/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User03 sees event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar3:/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/complex-put/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='User02 complex recurring store' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User02 store to shared&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar2:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-data/complex-change02/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User01 sees event&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/complex-change02/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User03 sees event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar3:/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/peruser-data/complex-change02/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Complex freebusy' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 freebusy&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$outboxpath1:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0103T140000Z/$now.year.1:0103T150000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0102T130000Z/$now.year.1:0102T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0102T130000Z/$now.year.1:0102T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0103T140000Z/$now.year.1:0103T150000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User02 freebusy&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$poutboxpath2:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0103T140000Z/$now.year.1:0103T150000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0102T130000Z/$now.year.1:0102T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0102T130000Z/$now.year.1:0102T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0103T140000Z/$now.year.1:0103T150000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User03 freebusy&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$poutboxpath3:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/peruser-data/simple-freebusy/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$cuaddr1:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0103T140000Z/$now.year.1:0103T150000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr2:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0102T130000Z/$now.year.1:0102T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;postFreeBusy&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;attendee&lt;/name&gt;
+                                                &lt;value&gt;$pcuaddr3:&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;busy&lt;/name&gt;
+                                                &lt;value&gt;$now.year.1:0101T130000Z/$now.year.1:0101T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0101T230000Z/$now.year.1:0102T000000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0102T130000Z/$now.year.1:0102T140000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0103T140000Z/$now.year.1:0103T150000Z&lt;/value&gt;
+                                                &lt;value&gt;$now.year.1:0104T130000Z/$now.year.1:0104T140000Z&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Prevent per-user data injection' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;User01 new event with injected per-user data&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; end-delete=&quot;yes&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-data/inject/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;prepostcondition&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;error&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}valid-calendar-data&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;User01 new event with valid data&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; end-delete=&quot;yes&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-data/inject/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;User01 existing event with injected per-user data&lt;/description&gt;
+                        &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-data/inject/3.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;prepostcondition&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;error&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}valid-calendar-data&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingperuserpropertiesxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-peruser-properties.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-peruser-properties.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-peruser-properties.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,394 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test per-user WebDAV properties&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Read-write calendar'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;PROPPATCH of displayname before share&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/nonglobal/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/nonglobal/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname$Changed Name #1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;PROPPATCH of calendar-description before share&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/shadowable/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}calendar-description&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/shadowable/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}calendar-description$Description #1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$sharedcalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Shared calendar exists&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/calendars/read-write/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;notexists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='prop patches - non-global' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of shared displayname&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/nonglobal/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname$The Shared Calendar&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;PROPPATCH of displayname&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/nonglobal/3.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/nonglobal/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname$Shared Name #2&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of shared displayname&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/nonglobal/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname$Changed Name #1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='prop patches - shadowable' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of shared calendar-description&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/shadowable/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}calendar-description$Description #1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;PROPPATCH of calendar-description&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/shadowable/3.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}calendar-description&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/shadowable/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}calendar-description$Sharee Description #2&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;PROPFIND of shared calendar-description&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/peruser-properties/shadowable/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{urn:ietf:params:xml:ns:caldav}calendar-description$Description #1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingpropfindxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-propfind.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-propfind.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-propfind.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,371 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/1.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/2.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/3.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/3.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/4.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/4.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/5.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/5.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Set up share'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;basename($shareecalendar2:)&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendarpath2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='regular home prop finds'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=0&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=1&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$calendar:/&lt;/value&gt;
+                                                &lt;value&gt;$shareecalendar2:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=infinity&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;infinity&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;prepostcondition&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;error&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}propfind-finite-depth&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='regular calendar prop finds'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=0&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=1&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;&lt;/value&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                                &lt;value&gt;5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=infinity&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;infinity&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;prepostcondition&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;error&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}propfind-finite-depth&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='regular calendar resource prop finds'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=0&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/1.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}creationdate&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}getcontenttype&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}getetag&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}getlastmodified&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=1&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/1.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;PROPFIND of basic properties depth=infinity&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/1.ics&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;infinity&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/props.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;prepostcondition&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;error&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}propfind-finite-depth&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+        
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingproxiesxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-proxies.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-proxies.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-proxies.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,569 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing with proxies&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+                &lt;feature&gt;proxy&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$userid4:&quot; pswd=&quot;$pswd4:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Setup proxies' ignore=&quot;no&quot;&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Add user03 as read proxy for user02&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal2:calendar-proxy-read/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/proxies/setupproxies/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Add user04 as write proxy for user02&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal2:calendar-proxy-write/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/proxies/setupproxies/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}group-member-set&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Set up share'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/Common/POST/sharedas.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}href&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Check accept status&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/proxies/setupproxies/4.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Check Sharer notification collection&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationreply2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Sharer adds event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/proxies/setupproxies/5.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Proxies see calendar and contents'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Read proxy lists calendar home&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$shareecalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Write proxy lists calendar home&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid4:&quot; pswd=&quot;$ppswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;prefix&lt;/name&gt;
+                                                &lt;value/&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$shareecalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Read proxy lists calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Write proxy lists calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid4:&quot; pswd=&quot;$ppswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Proxy data changes'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Read proxy cannot write new data&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/proxies/put/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Read proxy cannot write existing data&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/proxies/setupproxies/5.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Write proxy can write new data&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid4:&quot; pswd=&quot;$ppswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/proxies/put/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Sharer sees new data&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/proxies/put/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee sees new data&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/2.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/proxies/put/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Write proxy can write existing data with per-user alarm&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid4:&quot; pswd=&quot;$ppswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/proxies/put/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Sharer sees new data without alarm&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/proxies/put/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Sharee sees new data with alarm&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/proxies/put/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Proxy property changes'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Read proxy cannot write properties&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/proxies/properties/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Write proxy can write properties&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid4:&quot; pswd=&quot;$ppswd4:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/proxies/properties/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;Sharer sees original displayname&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/displayname.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Sharee sees new displayname&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/displayname.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname$Changed Name #1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pnotificationpath4:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$pprincipal2:calendar-proxy-read/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV-pod/sharing/proxies/setupproxies/3.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response=&quot;no&quot;&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$pprincipal2:calendar-proxy-write/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV-pod/sharing/proxies/setupproxies/3.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingrepliesxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-replies.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-replies.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-replies.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,286 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing replies&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Send first reply'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/Common/POST/sharedas.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}href&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Check accept status&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/replies/accept/1.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Check Sharer notification collection&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationreply2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Check sharee calendar displyname/shared-url&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/replies/accept/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindValues&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname$The Shared Calendar&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}sharedurl$$calendarhome1:/shared&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;Check sharer calendar displyname&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/displayname.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname$shared&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Update reply'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Sharee replies DECLINED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingdecline2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;Check declined status&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/replies/decline/1.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Check Sharer notification collection&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationdecline2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingreportsmultigetxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-reports-multiget.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-reports-multiget.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-reports-multiget.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,730 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared-tasks/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/MKCALENDAR/vtodo.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/1.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/2.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/2.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/3.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/3.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/4.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/4.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/5.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/5.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/6.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/6.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/7.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/7.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/8.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/8.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/9.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/9.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/10.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/10.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/11.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/11.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/12.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/12.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/13.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/13.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/14.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/14.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;exclude-feature&gt;
+                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                        &lt;/exclude-feature&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/15.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/15.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/18.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/18.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/19.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/19.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/20.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/20.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/21.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/21.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/22.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/22.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/27.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/27.ics&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared-tasks/101.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/101.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared-tasks/102.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/102.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared-tasks/103.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/103.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared-tasks/104.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/104.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared-tasks/105.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/105.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared-tasks/106.ics&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/reports/put/106.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Set up share'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;basename($shareecalendar2:)&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendarpath2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared-tasks/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;WAITCOUNT 2&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;basename($shareetasks2:)&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareetaskspath2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='multiget reports' ignore='no'&gt;
+                &lt;test name='1a' ignore='no'&gt;
+                        &lt;description&gt;basic multiget of 4 resources returning etag and entire ics data&lt;/description&gt;
+                        &lt;pause/&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;exclude-feature&gt;
+                                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                                        &lt;/exclude-feature&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;require-feature&gt;
+                                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                                        &lt;/require-feature&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;pause/&gt;
+                &lt;/test&gt;
+                &lt;test name='1b' ignore='no'&gt;
+                        &lt;require-feature&gt;
+                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                        &lt;/require-feature&gt;
+                        &lt;description&gt;basic multiget of 4 resources returning etag and entire ics data&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareetaskspath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/1b.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;basic multiget of 4 resources returning etag and only VCALENDAR property data (no embedded components)&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/2.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;basic multiget of 4 resources returning etag and only VTIMEZONE components&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/3.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4a' ignore='no'&gt;
+                        &lt;description&gt;basic multiget of 4 resources returning etag and only SUMMARY/UID properties inside VEVENT components and VALARMs&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/4.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;exclude-feature&gt;
+                                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                                        &lt;/exclude-feature&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;require-feature&gt;
+                                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                                        &lt;/require-feature&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4b' ignore='no'&gt;
+                        &lt;require-feature&gt;
+                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                        &lt;/require-feature&gt;
+                        &lt;description&gt;basic multiget of 4 resources returning etag and only SUMMARY/UID properties inside VEVENT components and VALARMs&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareetaskspath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/4b.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5a' ignore='no'&gt;
+                        &lt;description&gt;as 4.xml except that the SUMMARY property value is not returned&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/5.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;exclude-feature&gt;
+                                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                                        &lt;/exclude-feature&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;require-feature&gt;
+                                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                                        &lt;/require-feature&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5b' ignore='no'&gt;
+                        &lt;require-feature&gt;
+                                &lt;feature&gt;split-calendars&lt;/feature&gt;
+                        &lt;/require-feature&gt;
+                        &lt;description&gt;as 4.xml except that the SUMMARY property value is not returned&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareetaskspath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/5b.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;101.ics&lt;/value&gt;
+                                                &lt;value&gt;102.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Does allprop&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/6.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;Does propname&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/7.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                                &lt;value&gt;2.ics&lt;/value&gt;
+                                                &lt;value&gt;3.ics&lt;/value&gt;
+                                                &lt;value&gt;4.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8' ignore='no'&gt;
+                        &lt;description&gt;Single non-existent query&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendarpath2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/multiget/8.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;bogus-resource.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;$verify-bad-response:[*404]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+        
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingsyncxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-sync.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-sync.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-sync.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,1810 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing and cached home sync tokens&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+                &lt;feature&gt;sync-report&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+                &lt;request print-response='no'&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/Common/PROPPATCH/calendar-transp-opaque.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Read-write calendar'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;Initial sync tokens&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken4:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken5:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;basename($sharedcalendar:)&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;Updated tokens&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token3-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token4-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken4:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token5-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken5:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken6:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Sharee creates event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/sync/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;Updated tokens&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                                &lt;value&gt;shared/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token3-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token4-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken4:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token5-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken5:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token6-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken6:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Sharer changes event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/sync/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9' ignore='no'&gt;
+                        &lt;description&gt;Updated tokens&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                                &lt;value&gt;shared/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token3-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token4-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken4:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token5-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken5:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token6-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken6:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;Sharee deletes event&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/1.ics&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11' ignore='no'&gt;
+                        &lt;description&gt;Updated tokens&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token3-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token4-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken4:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token5-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken5:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token6-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken6:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;Sharer unshares&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13' ignore='no'&gt;
+                        &lt;description&gt;Updated tokens&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token3-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token4-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken4:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token5-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$notification:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken5:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token6-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;404&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+
+        &lt;test-suite name='calendar webdav property change - home depth:infinity' ignore='no'&gt;
+                &lt;require-feature&gt;
+                        &lt;feature&gt;sync-report-home&lt;/feature&gt;
+                &lt;/require-feature&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation and accept&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;basename($sharedcalendar:)&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;initial query - grab token&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$calendar:/&lt;/value&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;initial query - grab token for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$calendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Change a property by user 1&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/vcard; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/reports/sync/17.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 1&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;Remove a property by user 1&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/vcard; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/reports/sync/18.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 1&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10' ignore='no'&gt;
+                        &lt;description&gt;Change a property by user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/vcard; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/reports/sync/17.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 1&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13' ignore='no'&gt;
+                        &lt;description&gt;Remove a property by user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/vcard; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/reports/sync/18.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 1&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='15' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-infinite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;badhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16'&gt;
+                        &lt;description&gt;Sharer unshares&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='calendar webdav property change - home depth:1' ignore='no'&gt;
+                &lt;require-feature&gt;
+                        &lt;feature&gt;sync-report-home&lt;/feature&gt;
+                &lt;/require-feature&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation and accept&lt;/description&gt;
+                        &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;basename($sharedcalendar:)&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;initial query - grab token&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$calendar:/&lt;/value&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;initial query - grab token for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-init-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$calendar:/&lt;/value&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;ignoremissing&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Change a property by user 1&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/vcard; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/reports/sync/17.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 1&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7' ignore='no'&gt;
+                        &lt;description&gt;Remove a property by user 1&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/vcard; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/reports/sync/18.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 1&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;shared/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='9' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10' ignore='no'&gt;
+                        &lt;description&gt;Change a property by user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/vcard; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/reports/sync/17.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 1&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13' ignore='no'&gt;
+                        &lt;description&gt;Remove a property by user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/$sharedcalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/vcard; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/reports/sync/18.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 1&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token1-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[$synctoken1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken1:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='15' ignore='no'&gt;
+                        &lt;description&gt;Sync for user 2&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;REPORT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/REPORT/sync-token2-level-1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okhrefs&lt;/name&gt;
+                                                &lt;value&gt;$sharedcalendar:/&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlElementMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;exists&lt;/name&gt;
+                                                &lt;value&gt;/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;/{DAV:}multistatus/{DAV:}sync-token&lt;/name&gt;
+                                        &lt;variable&gt;$synctoken2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16'&gt;
+                        &lt;description&gt;Sharer unshares&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingremove2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+        
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingunsharexml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-unshare.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-unshare.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-unshare.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,500 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test calendar sharing unshare/delete behavior&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Set up share' ignore=&quot;no&quot;&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/Common/POST/sharedas.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}href&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Check accept status&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/invited2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Check Sharer notification collection&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationreply2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Delete' ignore=&quot;no&quot;&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Sharer adds event&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/unshare/shareedelete/1.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2' ignore='no'&gt;
+                        &lt;description&gt;Sharee deletes shared calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;DELETE&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;infinity&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3' ignore='no'&gt;
+                        &lt;description&gt;No more shared calendar&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/resourcetype.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;status&lt;/name&gt;
+                                                &lt;value&gt;404&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Sharer still has calendar data&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;1&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/count.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;multistatusItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;count&lt;/name&gt;
+                                                &lt;value&gt;1&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='Reshare after sharee DELETE shared calendar' ignore='no'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationinvite2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/Common/POST/sharedas.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}href&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4' ignore='no'&gt;
+                        &lt;description&gt;Check accept status&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;header&gt;
+                                        &lt;name&gt;Depth&lt;/name&gt;
+                                        &lt;value&gt;0&lt;/value&gt;
+                                &lt;/header&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/PROPFIND/invite.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/invited2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Check Sharer notification collection&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/common/notificationreply2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+
+        &lt;test-suite name='Invite, display name change, uninvite' ignore=&quot;no&quot;&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/unshare/shareruninvite/1.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/unshare/shareruninvite/2.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome3:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/unshare/shareruninvite/3.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/unshare/shareruninvite/4.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}href&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Sharee changes name&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar:/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/unshare/shareruninvite/5.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;propfindItems&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;okprops&lt;/name&gt;
+                                                &lt;value&gt;{DAV:}displayname&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5' ignore='no'&gt;
+                        &lt;description&gt;POST uninvitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV-pod/sharing/unshare/shareruninvite/6.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Check Sharee notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;xmlDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV-pod/sharing/unshare/shareruninvite/7.xml&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filter&lt;/name&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}dtstamp&lt;/value&gt;
+                                                &lt;value&gt;{http://calendarserver.org/ns/}uid&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsharingwebcalxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-webcal.xml (0 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-webcal.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/sharing-webcal.xml        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -0,0 +1,498 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE caldavtest SYSTEM &quot;caldavtest.dtd&quot;&gt;
+
+&lt;!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+ 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 &quot;AS IS&quot; 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.
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test internet calendar subscription behavior with sharing&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;webcal&lt;/feature&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$userid1:&quot; pswd=&quot;$pswd1:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;MKCALENDAR&lt;/method&gt;
+                        &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                        &lt;verify&gt;
+                                &lt;callback&gt;statusCode&lt;/callback&gt;
+                        &lt;/verify&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Setup two sharees'&gt;
+                &lt;test name='1' ignore='no'&gt;
+                        &lt;description&gt;POST invitation&lt;/description&gt;
+                        &lt;request print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharinginvite23-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Check Sharee 2 notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Sharee 2 replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome2:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply2-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar2:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Check Sharee 3 notification collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;WAITCOUNT 1&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid&lt;/name&gt;
+                                        &lt;variable&gt;$inviteuid3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$hosturl3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Sharee 3 replies ACCEPTED&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot; print-response='no'&gt;
+                                &lt;method&gt;POST&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome3:/&lt;/ruri&gt;
+                                &lt;data substitutions='yes'&gt;
+                                        &lt;content-type&gt;application/xml; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/Common/POST/sharingreply3-pod.xml&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;grabelement&gt;
+                                        &lt;name&gt;{DAV:}href&lt;/name&gt;
+                                        &lt;variable&gt;$shareecalendar3:&lt;/variable&gt;
+                                &lt;/grabelement&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='GET on empty calendar collection'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;GET on empty calendar collection&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;GET on empty calendar collection - 2nd time from cache&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;GET on empty calendar collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;GET on empty calendar collection - 2nd time from cache&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;GET on empty calendar collection&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;GET on empty calendar collection - 2nd time from cache&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/1.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='GET on calendar collection after initial PUT'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;GET on calendar collection after initial PUT&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/1.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/webcal/rolled/2.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;GET on calendar collection after initial PUT - 2nd time from cache&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/2.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;GET on calendar collection after initial PUT&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;GET on calendar collection after initial PUT - 2nd time from cache&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;GET on calendar collection after initial PUT&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;GET on calendar collection after initial PUT - 2nd time from cache&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='GET on calendar collection after sharee PUT'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;GET on calendar collection after sharee PUT&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar2:/2.ics&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/sharing/webcal/rolled/4.ics&lt;/filepath&gt;
+                                &lt;/data&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;GET on calendar collection after sharee PUT - 2nd time from cache&lt;/description&gt;
+                        &lt;request print-response=&quot;no&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarhome1:/shared/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;GET on calendar collection after sharee PUT&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/6.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;GET on calendar collection after sharee PUT - 2nd time from cache&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid2:&quot; pswd=&quot;$ppswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/6.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;GET on calendar collection after sharee PUT&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/7.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;GET on calendar collection after sharee PUT - 2nd time from cache&lt;/description&gt;
+                        &lt;request host2=&quot;yes&quot; user=&quot;$puserid3:&quot; pswd=&quot;$ppswd3:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$shareecalendar3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;calendarDataMatch&lt;/callback&gt;
+                                        &lt;arg&gt;
+                                                &lt;name&gt;filepath&lt;/name&gt;
+                                                &lt;value&gt;Resource/CalDAV/sharing/webcal/rolled/7.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;end&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$notificationpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request host2=&quot;yes&quot; user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pnotificationpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pnotificationpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkverifiersmultistatusItemspy"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/verifiers/multistatusItems.py (12119 => 12120)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/verifiers/multistatusItems.py        2013-12-17 17:41:24 UTC (rev 12119)
+++ CalDAVTester/trunk/verifiers/multistatusItems.py        2013-12-17 19:23:03 UTC (rev 12120)
</span><span class="lines">@@ -47,9 +47,9 @@
</span><span class="cx">             prefix = prefix[0] if prefix[0] != &quot;-&quot; else &quot;&quot;
</span><span class="cx">         else:
</span><span class="cx">             prefix = uri
</span><del>-        okhrefs = [prefix + i for i in okhrefs]
-        nohrefs = [prefix + i for i in nohrefs]
-        badhrefs = [prefix + i for i in badhrefs]
</del><ins>+        okhrefs = [(prefix + i).rstrip(&quot;/&quot;) for i in okhrefs]
+        nohrefs = [(prefix + i).rstrip(&quot;/&quot;) for i in nohrefs]
+        badhrefs = [(prefix + i).rstrip(&quot;/&quot;) for i in badhrefs]
</ins><span class="cx">         for k, v in args.items():
</span><span class="cx">             v = [prefix + i for i in v]
</span><span class="cx">             args[k] = v
</span><span class="lines">@@ -86,7 +86,7 @@
</span><span class="cx">             href = response.findall(&quot;{DAV:}href&quot;)
</span><span class="cx">             if href is None or len(href) != 1:
</span><span class="cx">                 return False, &quot;        Incorrect/missing DAV:Href element in response&quot;
</span><del>-            href = urllib.unquote(href[0].text)
</del><ins>+            href = urllib.unquote(href[0].text).rstrip(&quot;/&quot;)
</ins><span class="cx"> 
</span><span class="cx">             # Verify status
</span><span class="cx">             status = response.findall(&quot;{DAV:}status&quot;)
</span></span></pre>
</div>
</div>

</body>
</html>