<!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>[11894] 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/11894">11894</a></dd>
<dt>Author</dt> <dd>cdaboo@apple.com</dd>
<dt>Date</dt> <dd>2013-11-06 14:19:12 -0800 (Wed, 06 Nov 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>Support testing of 2-host pod setup.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#CalDAVTestertrunkREADMEtxt">CalDAVTester/trunk/README.txt</a></li>
<li><a href="#CalDAVTestertrunkscriptsserverserverinfotemplatexml">CalDAVTester/trunk/scripts/server/serverinfo-template.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptsserverserverinfodtd">CalDAVTester/trunk/scripts/server/serverinfo.dtd</a></li>
<li><a href="#CalDAVTestertrunkscriptsserverserverinfoxml">CalDAVTester/trunk/scripts/server/serverinfo.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestsCalDAVcaldavtestdtd">CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd</a></li>
<li><a href="#CalDAVTestertrunkscriptstestsCardDAVcaldavtestdtd">CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd</a></li>
<li><a href="#CalDAVTestertrunksrccaldavtestpy">CalDAVTester/trunk/src/caldavtest.py</a></li>
<li><a href="#CalDAVTestertrunksrcmanagerpy">CalDAVTester/trunk/src/manager.py</a></li>
<li><a href="#CalDAVTestertrunksrcrequestpy">CalDAVTester/trunk/src/request.py</a></li>
<li><a href="#CalDAVTestertrunksrcserverinfopy">CalDAVTester/trunk/src/serverinfo.py</a></li>
<li><a href="#CalDAVTestertrunksrcxmlDefspy">CalDAVTester/trunk/src/xmlDefs.py</a></li>
<li><a href="#CalDAVTestertrunkverifiersxmlElementMatchpy">CalDAVTester/trunk/verifiers/xmlElementMatch.py</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li>CalDAVTester/trunk/Resource/CalDAV/podding/</li>
<li>CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy1xml">CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy2xml">CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy3ics">CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/3.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy4xml">CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/4.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy5ics">CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/5.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy6xml">CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/6.xml</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy1xml">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/1.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy10xml">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/10.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy11xml">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/11.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy12ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/12.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy13ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/13.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy14ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/14.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy15ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/15.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy2xml">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/2.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy3ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/3.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy4xml">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/4.xml</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy5ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/5.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy6ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/6.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy7ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/7.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy8ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/8.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy9ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/9.ics</a></li>
<li>CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/</li>
<li>CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/</li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite11ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/1.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite12ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/2.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite13ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/3.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite14ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/4.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite15ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/5.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite16ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/6.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite17ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/7.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite18ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/8.ics</a></li>
<li><a href="#CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite19ics">CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/9.ics</a></li>
<li><a href="#CalDAVTestertrunkscriptsserverserverinfopodxml">CalDAVTester/trunk/scripts/server/serverinfo-pod.xml</a></li>
<li>CalDAVTester/trunk/scripts/tests-pod/</li>
<li>CalDAVTester/trunk/scripts/tests-pod/CalDAV/</li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVcaldavtestdtd">CalDAVTester/trunk/scripts/tests-pod/CalDAV/caldavtest.dtd</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVcalendaruserproxyxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/calendaruserproxy.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVimplicitproxyxml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/implicitproxy.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVimplicitsimplexml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/implicitsimple.xml</a></li>
<li><a href="#CalDAVTestertrunkscriptstestspodCalDAVsimplexml">CalDAVTester/trunk/scripts/tests-pod/CalDAV/simple.xml</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#CalDAVTestertrunkscriptsserverserverinfopartitioningxml">CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="CalDAVTestertrunkREADMEtxt"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/README.txt (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/README.txt        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/README.txt        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -791,6 +791,7 @@
</span><span class="cx">         [+text] - node text starts with &quot;text&quot;.
</span><span class="cx">         [^tag] - node has child element &quot;tag&quot;.
</span><span class="cx">         [^tag=text] - node has child element &quot;tag&quot; with text &quot;text&quot;.
</span><ins>+        [|] - node is empty.
</ins><span class="cx">         [json] - node contains valid JSON data.
</span><span class="cx">         [icalendar] - node contains valid iCalendare data.
</span><span class="cx">         
</span></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/1.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/1.xml        2013-11-06 22:19:12 UTC (rev 11894)
</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;&gt;
+&lt;D:prop&gt;
+&lt;D:group-member-set/&gt;
+&lt;D:group-membership/&gt;
+&lt;/D:prop&gt;
+&lt;/D:propfind&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/2.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/2.xml        2013-11-06 22:19:12 UTC (rev 11894)
</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;$pprincipaluri1:&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="CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy3ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/3.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/3.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/3.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+VERSION:2.0
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+CREATED:20060101T150000Z
+DTSTART:$now.year.1:0101T100000Z
+DURATION:PT1H
+SUMMARY:event 2
+UID:event2@ninevah.local
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy4xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/4.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/4.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/4.xml        2013-11-06 22:19:12 UTC (rev 11894)
</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="CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy5ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/5.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/5.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/5.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,30 @@
</span><ins>+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+VERSION:2.0
+BEGIN:VTIMEZONE
+LAST-MODIFIED:20040110T032845Z
+TZID:US/Eastern
+BEGIN:DAYLIGHT
+DTSTART:20000404T020000
+RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
+TZNAME:EDT
+TZOFFSETFROM:-0500
+TZOFFSETTO:-0400
+END:DAYLIGHT
+BEGIN:STANDARD
+DTSTART:20001026T020000
+RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
+TZNAME:EST
+TZOFFSETFROM:-0400
+TZOFFSETTO:-0500
+END:STANDARD
+END:VTIMEZONE
+BEGIN:VEVENT
+DTSTAMP:20051222T205953Z
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+SUMMARY:event 1
+UID:54E181BC7CCC373042B28842@ninevah.local
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingcalendaruserproxy6xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/6.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/6.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/calendaruserproxy/6.xml        2013-11-06 22:19:12 UTC (rev 11894)
</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;$principaluri2:&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="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy1xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/1.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/1.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/1.xml        2013-11-06 22:19:12 UTC (rev 11894)
</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;$pprincipaluri1:&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="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy10xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/10.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/10.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/10.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:acl xmlns:D=&quot;DAV:&quot;&gt;
+        &lt;D:ace&gt;
+                &lt;D:principal&gt;
+                        &lt;D:href&gt;$pprincipaluri1:&lt;/D:href&gt;
+                &lt;/D:principal&gt;
+                &lt;D:grant&gt;
+                        &lt;D:privilege&gt;&lt;D:read/&gt;&lt;/D:privilege&gt;
+                        &lt;D:privilege&gt;&lt;D:write/&gt;&lt;/D:privilege&gt;
+                &lt;/D:grant&gt;
+        &lt;/D:ace&gt;
+&lt;/D:acl&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy11xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/11.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/11.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/11.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
+&lt;D:acl xmlns:D=&quot;DAV:&quot;/&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy12ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/12.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/12.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/12.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,15 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-2
+DTSTART:$now.year.1:0208T120000Z
+DURATION:PT1H
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy13ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/13.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/13.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/13.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-3
+DTSTART:$now.year.1:0208T100000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED:$cuaddralt2:
+ATTENDEE;CN=$username3:;RSVP=TRUE:$cuaddralt3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2::$cuaddralt2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy14ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/14.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/14.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/14.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:$now.year.1:0208T200000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED:$cuaddralt2:
+ATTENDEE;CN=$username3:;PARTSTAT=DECLINED:$cuaddralt3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2::$cuaddralt2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy15ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/15.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/15.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/15.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:$now.year.1:0208T200000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$username3:;PARTSTAT=DECLINED;EMAIL=$email3::$cuaddrurn3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2:;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy2xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/2.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/2.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/2.xml        2013-11-06 22:19:12 UTC (rev 11894)
</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:group-member-set&gt;
+&lt;/D:prop&gt;
+&lt;/D:set&gt;
+&lt;/D:propertyupdate&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy3ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/3.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/3.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/3.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:$now.year.1:0208T200000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED:$cuaddralt2:
+ATTENDEE;CN=$username3:;RSVP=TRUE:$cuaddralt3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2::$cuaddralt2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy4xml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/4.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/4.xml                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/4.xml        2013-11-06 22:19:12 UTC (rev 11894)
</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;&gt;
+&lt;D:prop&gt;
+&lt;D:resourcetype/&gt;
+&lt;D:getetag/&gt;
+&lt;/D:prop&gt;
+&lt;/D:propfind&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy5ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/5.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/5.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/5.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:$now.year.1:0208T200000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$username3:;RSVP=TRUE;SCHEDULE-STATUS=1.2;EMAIL=$email3::$cuaddrurn3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2:;EMAIL=$email2::$cuaddrurn2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy6ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/6.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/6.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/6.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:$now.year.1:0208T200000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$username3:;RSVP=TRUE;EMAIL=$email3::$cuaddrurn3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2:;EMAIL=$email2::$cuaddrurn2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy7ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/7.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/7.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/7.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:$now.year.1:0208T200000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED:$cuaddralt2:
+ATTENDEE;CN=$username3:;PARTSTAT=ACCEPTED:$cuaddralt3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2::$cuaddralt2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy8ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/8.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/8.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/8.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//Example Inc.//Example Calendar//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:$now.year.1:0208T200000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$username3:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0;
+ EMAIL=$email3::$cuaddrurn3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2:;EMAIL=$email2::$cuaddrurn2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitproxy9ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/9.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/9.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitproxy/9.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+PRODID:-//CALENDARSERVER.ORG//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:event-1
+DTSTART:$now.year.1:0208T200000Z
+DURATION:PT1H
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$username3:;PARTSTAT=ACCEPTED;EMAIL=$email3::$cuaddrurn3:
+CREATED:20060110T231240Z
+DESCRIPTION:Call-in
+DTSTAMP:20060309T185105Z
+ORGANIZER;CN=$username2:;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+STATUS:CONFIRMED
+SUMMARY:Example
+TRANSP:OPAQUE
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite11ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/1.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/1.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/1.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,35 @@
</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:event1@ninevah.local
+ORGANIZER;CN=$username1::$cuaddr1:
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$cuaddr2:
+ATTENDEE;CN=$pusername1:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION:$pcuaddr1:
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite12ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/2.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/2.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/2.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//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:event1@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;SCHEDULE-STATUS=1.2;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$pusername1:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;SCHEDULE-STATUS=1.2;EMAIL=$pemail1::$pcuaddrurn1:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite13ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/3.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/3.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/3.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//CALENDARSERVER.ORG//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:event1@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$pusername1:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;EMAIL=$pemail1::$pcuaddrurn1:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite14ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/4.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/4.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/4.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//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:event1@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED:$cuaddr2:
+ATTENDEE;CN=$pusername1:;PARTSTAT=NEEDS-ACTION;RSVP=TRUE:$pcuaddr1:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1::$cuaddr1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite15ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/5.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/5.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/5.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//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:event1@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$pusername1:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;SCHEDULE-STATUS=1.2;EMAIL=$pemail1::$pcuaddrurn1:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite16ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/6.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/6.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/6.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//CALENDARSERVER.ORG//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:event1@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$pusername1:;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;EMAIL=$pemail1::$pcuaddrurn1:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+TRANSP:TRANSPARENT
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite17ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/7.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/7.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/7.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//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:event1@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED:$cuaddr1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED:$cuaddr2:
+ATTENDEE;CN=$pusername1:;PARTSTAT=DECLINED:$pcuaddr1:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1::$cuaddr1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite18ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/8.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/8.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/8.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//Example Inc.//Example Calendar//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:event1@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;SCHEDULE-STATUS=2.0;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$pusername1:;PARTSTAT=DECLINED;SCHEDULE-STATUS=2.0;EMAIL=$pemail1::$pcuaddrurn1:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkResourceCalDAVpoddingimplicitschedulesuite19ics"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/9.ics (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/9.ics                                (rev 0)
+++ CalDAVTester/trunk/Resource/CalDAV/podding/implicitschedule/suite1/9.ics        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+PRODID:-//CALENDARSERVER.ORG//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:event1@ninevah.local
+DTSTART;TZID=US/Eastern:$now.year.1:0101T100000
+DURATION:PT1H
+ATTENDEE;CN=$username1:;PARTSTAT=ACCEPTED;EMAIL=$email1::$cuaddrurn1:
+ATTENDEE;CN=$username2:;PARTSTAT=ACCEPTED;EMAIL=$email2::$cuaddrurn2:
+ATTENDEE;CN=$pusername1:;PARTSTAT=DECLINED;EMAIL=$pemail1::$pcuaddrurn1:
+CREATED:20060101T150000Z
+DTSTAMP:20051222T205953Z
+ORGANIZER;CN=$username1:;SCHEDULE-STATUS=1.2;EMAIL=$email1::$cuaddrurn1:
+SUMMARY:event 1
+END:VEVENT
+END:VCALENDAR
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptsserverserverinfopartitioningxml"></a>
<div class="delfile"><h4>Deleted: CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -1,896 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
-
-&lt;!DOCTYPE serverinfo SYSTEM &quot;serverinfo.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;serverinfo&gt;
-        &lt;host&gt;localhost&lt;/host&gt;
-        &lt;nonsslport&gt;8008&lt;/nonsslport&gt;
-        &lt;sslport&gt;8443&lt;/sslport&gt;
-        &lt;authtype&gt;basic&lt;/authtype&gt;
-
-        &lt;features&gt;
-                &lt;!--  Generic WebDAV extensions --&gt;
-                &lt;feature&gt;COPY Method&lt;/feature&gt;                                                        &lt;!-- COPY method --&gt;
-                &lt;feature&gt;MOVE Method&lt;/feature&gt;                                                        &lt;!-- MOVE method --&gt;
-                &lt;feature&gt;Extended MKCOL&lt;/feature&gt;                                                &lt;!-- Extended MKCOL --&gt;
-                
-                &lt;!-- ACL related --&gt;
-                &lt;feature&gt;ACL Method&lt;/feature&gt;                                                        &lt;!-- ACL method --&gt;
-                &lt;feature&gt;acl-principal-prop-set REPORT&lt;/feature&gt;                &lt;!-- ACL acl-principal-prop-set REPORT --&gt;
-                &lt;feature&gt;principal-match REPORT&lt;/feature&gt;                                &lt;!-- ACL principal-match REPORT --&gt;
-                &lt;feature&gt;principal-property-search REPORT&lt;/feature&gt;                &lt;!-- ACL principal-property-search REPORT --&gt;
-                &lt;feature&gt;principal-search-property-set REPORT&lt;/feature&gt;        &lt;!-- ACL principal-search-property-set REPORT --&gt;
-
-                &lt;feature&gt;add-member&lt;/feature&gt;                                        &lt;!-- Add-member used to create resources --&gt;
-                &lt;!-- &lt;feature&gt;auth-on-root&lt;/feature&gt; --&gt;                &lt;!-- Whether the server requires authentication on the root URI --&gt;
-                &lt;feature&gt;brief&lt;/feature&gt;                                            &lt;!-- Brief header for PROPFIND, REPORT --&gt;
-                &lt;feature&gt;bulk-post&lt;/feature&gt;                                        &lt;!-- Bulk POST requests --&gt;
-                &lt;feature&gt;ctag&lt;/feature&gt;                                                        &lt;!-- ctag extension --&gt;
-                &lt;feature&gt;current-user-principal&lt;/feature&gt;                &lt;!-- current-user-principal extension --&gt;
-                &lt;feature&gt;directory listing&lt;/feature&gt;                         &lt;!-- GET on collection --&gt;
-                &lt;feature&gt;extended-principal-search&lt;/feature&gt;        &lt;!-- Extended principal-property-search REPORT extension --&gt;
-                &lt;feature&gt;expand-property&lt;/feature&gt;                                &lt;!-- Expand property REPORT --&gt;
-                &lt;feature&gt;only-proxy-groups&lt;/feature&gt;                        &lt;!-- Group-membership only includes delegated-to groups --&gt;
-                &lt;feature&gt;limits&lt;/feature&gt;                                                &lt;!-- max-collections and max-resources limits --&gt;
-                &lt;feature&gt;prefer&lt;/feature&gt;                                                &lt;!-- Prefer header overall support --&gt;
-                &lt;feature&gt;prefer-minimal&lt;/feature&gt;                                &lt;!-- Prefer header return=minimal --&gt;
-                &lt;feature&gt;prefer-representation&lt;/feature&gt;                &lt;!-- Prefer header return=representation --&gt;
-                &lt;feature&gt;prefer-noroot&lt;/feature&gt;                                &lt;!-- Prefer header depth-noroot --&gt;
-                &lt;feature&gt;quota&lt;/feature&gt;                                                &lt;!-- WebDAV QUOTA --&gt;
-                &lt;!-- &lt;feature&gt;quota-on-resources&lt;/feature&gt; --&gt;        &lt;!-- WebDAV QUOTA on calendar and address book object resources --&gt;
-                &lt;feature&gt;resource-id&lt;/feature&gt;                                        &lt;!-- WebDAV BIND DAV:resource-id property --&gt;
-                &lt;feature&gt;sync-report&lt;/feature&gt;                                        &lt;!-- WebDAV collection sync REPORT --&gt;
-                &lt;!-- &lt;feature&gt;sync-report-limit&lt;/feature&gt; --&gt;        &lt;!-- WebDAV collection sync REPORT DAV:limit support --&gt;
-                &lt;feature&gt;sync-report-home&lt;/feature&gt;                                &lt;!-- WebDAV collection sync REPORT on Homes --&gt;
-                &lt;feature&gt;well-known&lt;/feature&gt;                                        &lt;!-- well-known feature --&gt;
-
-                &lt;!-- &lt;feature&gt;per-object-ACLs&lt;/feature&gt; --&gt;                &lt;!-- ACL for objects in calendar/address books --&gt;
-                &lt;!-- &lt;feature&gt;regular-collection&lt;/feature&gt; --&gt;  &lt;!-- Regular collections allowed in calendar/address book homes --&gt;
-
-                &lt;!-- &lt;feature&gt;json-data&lt;/feature&gt; --&gt;                        &lt;!-- jCal and jCard support --&gt;
-
-                &lt;!-- CalDAV specific extension --&gt;
-                &lt;feature&gt;caldav&lt;/feature&gt;                                            &lt;!-- Basic CalDAV feature enabler --&gt;
-                &lt;feature&gt;attachments-collection&lt;/feature&gt;                &lt;!-- Server uses a collection in same WebDAV tree to store attachments --&gt;
-                &lt;feature&gt;auto-accept&lt;/feature&gt;                                        &lt;!-- Auto-accept for rooms &amp; locations --&gt;
-                &lt;feature&gt;auto-accept-modes&lt;/feature&gt;                        &lt;!-- Auto-accept modes --&gt;
-                &lt;!-- &lt;feature&gt;dropbox&lt;/feature&gt; --&gt;                                &lt;!-- dropbox extension --&gt;
-                &lt;feature&gt;default-alarms&lt;/feature&gt;                                &lt;!-- default alarms extension --&gt;
-                &lt;feature&gt;EMAIL parameter&lt;/feature&gt;                                &lt;!-- Server normalizes cuaddress and adds EMAIL parameter --&gt;
-                &lt;feature&gt;extended-freebusy&lt;/feature&gt;                      &lt;!-- Extended freebusy response --&gt;
-                &lt;feature&gt;implicit-scheduling&lt;/feature&gt;                        &lt;!-- CalDAV scheduling - implicit --&gt;
-                &lt;feature&gt;location-resource-tracking&lt;/feature&gt;   &lt;!-- Server tracks who makes unscheduled changes to locations and resources --&gt;
-                &lt;feature&gt;managed-attachments&lt;/feature&gt;                        &lt;!-- CalDAV Managed Attachments --&gt;
-                &lt;feature&gt;maskuid&lt;/feature&gt;                                                &lt;!-- maskuid extension --&gt;
-                &lt;feature&gt;no-duplicate-uids&lt;/feature&gt;                        &lt;!-- duplicate UIDs in same home not supported --&gt;
-                &lt;feature&gt;partitioning&lt;/feature&gt;                                        &lt;!-- Partitioned server --&gt;
-                &lt;feature&gt;partstat-timestamp&lt;/feature&gt;                        &lt;!-- Time stamps when PARTSTAT changes extension --&gt;
-                &lt;feature&gt;private-comments&lt;/feature&gt;                                &lt;!-- private-comments extension --&gt;
-                &lt;feature&gt;private-events&lt;/feature&gt;                                &lt;!-- private-events extension --&gt;
-                &lt;feature&gt;proxy&lt;/feature&gt;                                                &lt;!-- calendar-user-proxy extension --&gt;
-                &lt;!-- &lt;feature&gt;proxy-authz&lt;/feature&gt; --&gt;                        &lt;!-- sudo user extension --&gt;
-                &lt;feature&gt;remove-duplicate-alarms&lt;/feature&gt;           &lt;!-- Server removes any duplicate alarms on PUT --&gt;
-                &lt;feature&gt;query-extended&lt;/feature&gt;                                &lt;!-- calendar-query-extended extension --&gt;
-                &lt;feature&gt;shared-calendars&lt;/feature&gt;                                &lt;!-- Shared calendars extension --&gt;
-                &lt;feature&gt;schedule-changes&lt;/feature&gt;                                &lt;!-- schedule-changes property extension --&gt;
-                &lt;feature&gt;split-calendars&lt;/feature&gt;                                &lt;!-- Calendars are split by component type --&gt;
-                &lt;feature&gt;supported-component-sets&lt;/feature&gt;                &lt;!-- CALDAV:supported-calendar-component-sets on calendar homes --&gt;
-                &lt;feature&gt;supported-component-sets-one&lt;/feature&gt;        &lt;!-- Only single component calendars allowed to be created --&gt;
-                &lt;feature&gt;timerange-low-limit&lt;/feature&gt;                        &lt;!-- Time-range only valid one year back --&gt;
-                &lt;feature&gt;timerange-high-limit&lt;/feature&gt;                        &lt;!-- Time-range only valid 5 years ahead --&gt;
-                &lt;feature&gt;timezones-by-reference&lt;/feature&gt;                &lt;!-- Timezones by reference enabled --&gt;
-                &lt;feature&gt;timezone-service&lt;/feature&gt;                                &lt;!-- Timezone service extension for Wiki --&gt;
-                &lt;feature&gt;timezone-std-service&lt;/feature&gt;                        &lt;!-- Timezone standard service extension --&gt;
-                &lt;feature&gt;vavailability&lt;/feature&gt;                                &lt;!-- VAVAILABILITY on inbox --&gt;
-                &lt;feature&gt;webcal&lt;/feature&gt;                                                &lt;!-- Internet calendar subscription via GET on calendar collection --&gt;
-
-                &lt;!-- CardDAV specific extension --&gt;
-                &lt;feature&gt;carddav&lt;/feature&gt;                                                 &lt;!-- Basic CardDAV feature enabler --&gt;
-                &lt;feature&gt;default-addressbook&lt;/feature&gt;                         &lt;!-- Default address book behavior --&gt;
-                &lt;!-- &lt;feature&gt;global-addressbook&lt;/feature&gt; --&gt;         &lt;!-- Global address book for each user --&gt;
-                &lt;feature&gt;shared-addressbooks&lt;/feature&gt;                        &lt;!-- Shared address books extension --&gt;
-                &lt;!-- &lt;feature&gt;directory-gateway&lt;/feature&gt; --&gt;        &lt;!-- Directory gateway extension --&gt;
-
-        &lt;/features&gt;
-
-        &lt;substitutions&gt;
-                &lt;!-- Useful xpath shortcuts for verifiers --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$multistatus-response-prefix:&lt;/key&gt;
-                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$multistatus-href-prefix:&lt;/key&gt;
-                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}href&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$verify-response-prefix:&lt;/key&gt;
-                        &lt;value&gt;{DAV:}response/{DAV:}propstat/{DAV:}prop&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$verify-property-prefix:&lt;/key&gt;
-                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$verify-bad-response:&lt;/key&gt;
-                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}status&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$verify-error-response:&lt;/key&gt;
-                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}error&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$CALDAV:&lt;/key&gt;
-                        &lt;value&gt;urn:ietf:params:xml:ns:caldav&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$CARDDAV:&lt;/key&gt;
-                        &lt;value&gt;urn:ietf:params:xml:ns:carddav&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$CS:&lt;/key&gt;
-                        &lt;value&gt;http://calendarserver.org/ns/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- Server configuration settings --&gt;
-                &lt;!-- $host: and $hostssl: are implicitly added by CalDAVTester based
-                     on the host/nonsslport/sslport values and ssl command line switch --&gt;
-
-                &lt;!-- relative path to caldav root--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$root:&lt;/key&gt;
-                        &lt;value&gt;/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to main principal collection--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principalcollection:&lt;/key&gt;
-                        &lt;value&gt;$root:principals/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- the core recored type collections--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$uidstype:&lt;/key&gt;
-                        &lt;value&gt;__uids__&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$userstype:&lt;/key&gt;
-                        &lt;value&gt;users&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$groupstype:&lt;/key&gt;
-                        &lt;value&gt;groups&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$locationstype:&lt;/key&gt;
-                        &lt;value&gt;locations&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$resourcestype:&lt;/key&gt;
-                        &lt;value&gt;resources&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to record type principal collections--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principals_uids:&lt;/key&gt;
-                        &lt;value&gt;$principalcollection:$uidstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principals_users:&lt;/key&gt;
-                        &lt;value&gt;$principalcollection:$userstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principals_groups:&lt;/key&gt;
-                        &lt;value&gt;$principalcollection:$groupstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principals_resources:&lt;/key&gt;
-                        &lt;value&gt;$principalcollection:$resourcestype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principals_locations:&lt;/key&gt;
-                        &lt;value&gt;$principalcollection:$locationstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to calendars collection--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$calendars:&lt;/key&gt;
-                        &lt;value&gt;$root:calendars/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to record type calendar collections--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$calendars_uids:&lt;/key&gt;
-                        &lt;value&gt;$calendars:$uidstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$calendars_users:&lt;/key&gt;
-                        &lt;value&gt;$calendars:$userstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$calendars_groups:&lt;/key&gt;
-                        &lt;value&gt;$calendars:$groupstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$calendars_resources:&lt;/key&gt;
-                        &lt;value&gt;$calendars:$resourcestype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$calendars_locations:&lt;/key&gt;
-                        &lt;value&gt;$calendars:$locationstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- primary calendar name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$calendar:&lt;/key&gt;
-                        &lt;value&gt;calendar&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- primary tasks-only calendar name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$tasks:&lt;/key&gt;
-                        &lt;value&gt;tasks&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- inbox name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$inbox:&lt;/key&gt;
-                        &lt;value&gt;inbox&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- outbox name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$outbox:&lt;/key&gt;
-                        &lt;value&gt;outbox&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- dropbox name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$dropbox:&lt;/key&gt;
-                        &lt;value&gt;dropbox&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- attachments name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$attachments:&lt;/key&gt;
-                        &lt;value&gt;dropbox&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- notification name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$notification:&lt;/key&gt;
-                        &lt;value&gt;notification&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- freebusy name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$freebusy:&lt;/key&gt;
-                        &lt;value&gt;freebusy&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- server-to-server inbox--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$servertoserver:&lt;/key&gt;
-                        &lt;value&gt;$root:inbox&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- timezone service--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$timezoneservice:&lt;/key&gt;
-                        &lt;value&gt;$root:timezones&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- timezone std service--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$timezonestdservice:&lt;/key&gt;
-                        &lt;value&gt;$root:stdtimezones&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to addressbooks collection--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$addressbooks:&lt;/key&gt;
-                        &lt;value&gt;$root:addressbooks/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to record type addressbook collections--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$addressbooks_uids:&lt;/key&gt;
-                        &lt;value&gt;$addressbooks:$uidstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$addressbooks_users:&lt;/key&gt;
-                        &lt;value&gt;$addressbooks:$userstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$addressbooks_groups:&lt;/key&gt;
-                        &lt;value&gt;$addressbooks:$groupstype:/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- primary addressbook name --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$addressbook:&lt;/key&gt;
-                        &lt;value&gt;addressbook&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- directory name --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$directory:&lt;/key&gt;
-                        &lt;value&gt;$root:directory/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- global-addressbook name --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$global_addressbook:&lt;/key&gt;
-                        &lt;value&gt;global-addressbook&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- POST add-member URI suffix --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$add-member:&lt;/key&gt;
-                        &lt;value&gt;;add-member&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- user id for admin user --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$useradmin:&lt;/key&gt;
-                        &lt;value&gt;admin&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- guid for admin user --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$useradminguid:&lt;/key&gt;
-                        &lt;value&gt;admin&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- password for admin user --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$pswdadmin:&lt;/key&gt;
-                        &lt;value&gt;admin&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to admin principal resource--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principal_admin:&lt;/key&gt;
-                        &lt;value&gt;$principals_users:$useradmin:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principaluri_admin:&lt;/key&gt;
-                        &lt;value&gt;$principals_uids:$useradminguid:/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- user id for apprentice user --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$userapprentice:&lt;/key&gt;
-                        &lt;value&gt;apprentice&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- guid for apprentice user --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$userapprenticeguid:&lt;/key&gt;
-                        &lt;value&gt;apprentice&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- password for admin user --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$pswdapprentice:&lt;/key&gt;
-                        &lt;value&gt;apprentice&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to apprentice principal resource--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principal_apprentice:&lt;/key&gt;
-                        &lt;value&gt;$principals_users:$userapprentice:/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principaluri_apprentice:&lt;/key&gt;
-                        &lt;value&gt;$principals_uids:$userapprenticeguid:/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- user id for proxy user --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$userproxy:&lt;/key&gt;
-                        &lt;value&gt;superuser&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- password for proxy user --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$pswdproxy:&lt;/key&gt;
-                        &lt;value&gt;superuser&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!--  Forty user accounts --&gt;
-                &lt;repeat count=&quot;40&quot;&gt;
-                        &lt;!-- user id --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$userid%d:&lt;/key&gt;
-                                &lt;value&gt;user%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- user guid --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$userguid%d:&lt;/key&gt;
-                                &lt;value&gt;user%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- user name --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$username%d:&lt;/key&gt;
-                                &lt;value&gt;User %02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- user name URI encoded --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$username-encoded%d:&lt;/key&gt;
-                                &lt;value&gt;User%%20%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- first name --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$firstname%d:&lt;/key&gt;
-                                &lt;value&gt;User&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- last name --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$lastname%d:&lt;/key&gt;
-                                &lt;value&gt;%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- password --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$pswd%d:&lt;/key&gt;
-                                &lt;value&gt;user%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user principal resource--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$principal%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_users:$userid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$principaluri%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_uids:$userguid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$principal%dnoslash:&lt;/key&gt;
-                                &lt;value&gt;$principals_users:$userid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-
-                        &lt;!-- relative path to user calendar home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$calendarhome%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$userguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user alternate calendar home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$calendarhomealt%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_users:$userid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user calendar--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$calendarpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendarhome%d:/$calendar:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user alternate calendar--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$calendarpathalt%d:&lt;/key&gt;
-                                &lt;value&gt;$calendarhomealt%d:/$calendar:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user tasks calendar--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$taskspath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendarhome%d:/$tasks:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user inbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$inboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendarhome%d:/$inbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user outbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$outboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendarhome%d:/$outbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user dropbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$dropboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendarhome%d:/$dropbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user notification--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$notificationpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendarhome%d:/$notification:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user freebusy--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$freebusypath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendarhome%d:/$freebusy:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$email%d:&lt;/key&gt;
-                                &lt;value&gt;$userid%d:@example.com&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- calendar user address of user--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$cuaddr%d:&lt;/key&gt;
-                                &lt;value&gt;mailto:$email%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$cuaddralt%d:&lt;/key&gt;
-                                &lt;value&gt;$principaluri%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$cuaddraltnoslash%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_uids:$userguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$cuaddrurn%d:&lt;/key&gt;
-                                &lt;value&gt;urn:uuid:$userguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-
-                        &lt;!-- relative path to user addressbook home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$addressbookhome%d:&lt;/key&gt;
-                                &lt;value&gt;$addressbooks_uids:$userguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user addressbook--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$addressbookpath%d:&lt;/key&gt;
-                                &lt;value&gt;$addressbooks_uids:$userguid%d:/$addressbook:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                &lt;/repeat&gt;
-
-                &lt;!--  Ten public accounts --&gt;
-                &lt;repeat count=&quot;10&quot;&gt;
-                        &lt;!-- user id --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publicuserid%d:&lt;/key&gt;
-                                &lt;value&gt;public%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- user guid --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publicuserguid%d:&lt;/key&gt;
-                                &lt;value&gt;public%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- user name --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publicusername%d:&lt;/key&gt;
-                                &lt;value&gt;Public %02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- password --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publicpswd%d:&lt;/key&gt;
-                                &lt;value&gt;public%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user principal resource--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publicprincipal%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_users:$publicuserid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publicprincipaluri%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_uids:$publicuserguid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user calendar home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publiccalendarhome%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$publicuserguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user calendar--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publiccalendarpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$publicuserguid%d:/$calendar:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publicemail%d:&lt;/key&gt;
-                                &lt;value&gt;$publicuserid%d:@example.com&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- calendar user address of user--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publiccuaddr%d:&lt;/key&gt;
-                                &lt;value&gt;mailto:$publicemail%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publiccuaddralt%d:&lt;/key&gt;
-                                &lt;value&gt;$publicprincipaluri%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$publiccuaddrurn%d:&lt;/key&gt;
-                                &lt;value&gt;urn:uuid:$publicuserguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                &lt;/repeat&gt;
-
-                &lt;!--  Twenty resource accounts --&gt;
-                &lt;repeat count=&quot;20&quot;&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$resourceid%d:&lt;/key&gt;
-                                &lt;value&gt;resource%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- resource guid--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$resourceguid%d:&lt;/key&gt;
-                                &lt;value&gt;resource%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- resource name--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$resourcename%d:&lt;/key&gt;
-                                &lt;value&gt;Resource %02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first resource calendar home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$rcalendarhome%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$resourceguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first resource calendar home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$rcalendarpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$resourceguid%d:/$calendar:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first resource inbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$rinboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$resourceguid%d:/$inbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first resource outbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$routboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$resourceguid%d:/$outbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first resource principal resource--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$rprincipal%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_resources:$resourceid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$rprincipaluri%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_uids:$resourceguid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$rcuaddralt%d:&lt;/key&gt;
-                                &lt;value&gt;$rprincipaluri%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$rcuaddrurn%d:&lt;/key&gt;
-                                &lt;value&gt;urn:uuid:$resourceguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                &lt;/repeat&gt;
-
-                &lt;!--  Ten Location accounts --&gt;
-                &lt;repeat count=&quot;10&quot;&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$locationid%d:&lt;/key&gt;
-                                &lt;value&gt;location%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- location guid--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$locationguid%d:&lt;/key&gt;
-                                &lt;value&gt;location%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- location name--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$locationname%d:&lt;/key&gt;
-                                &lt;value&gt;Location %02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first location calendar home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$lcalendarhome%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$locationguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first location calendar home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$lcalendarpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$locationguid%d:/$calendar:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first location inbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$linboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$locationguid%d:/$inbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first location outbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$loutboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$locationguid%d:/$outbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first location principal resource--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$lprincipal%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_resources:$locationid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$lprincipaluri%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_uids:$locationguid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$lcuaddralt%d:&lt;/key&gt;
-                                &lt;value&gt;$lprincipaluri%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$lcuaddrurn%d:&lt;/key&gt;
-                                &lt;value&gt;urn:uuid:$locationguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                &lt;/repeat&gt;
-
-
-                &lt;!--  Ten Group accounts --&gt;
-                &lt;repeat count=&quot;10&quot;&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$groupid%d:&lt;/key&gt;
-                                &lt;value&gt;group%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- group guid--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$groupguid%d:&lt;/key&gt;
-                                &lt;value&gt;group%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- group name--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$groupname%d:&lt;/key&gt;
-                                &lt;value&gt;Group %02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to first group principal resource--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$gprincipal%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_resources:$groupid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$gprincipaluri%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_uids:$groupguid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$gcuaddralt%d:&lt;/key&gt;
-                                &lt;value&gt;$gprincipaluri%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$gcuaddrurn%d:&lt;/key&gt;
-                                &lt;value&gt;urn:uuid:$groupguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                &lt;/repeat&gt;
-
-                &lt;!--  User with non-ascii name --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$i18nid:&lt;/key&gt;
-                        &lt;value&gt;i18nuser&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- group guid--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$i18nguid:&lt;/key&gt;
-                        &lt;value&gt;i18nuser&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- group name--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$i18nname:&lt;/key&gt;
-                        &lt;value&gt;まだ&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- password --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$i18npswd:&lt;/key&gt;
-                        &lt;value&gt;i18nuser&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- relative path to user calendar--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$i18ncalendarpath:&lt;/key&gt;
-                        &lt;value&gt;$calendars_uids:$i18nguid:/$calendar:&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$i18nemail:&lt;/key&gt;
-                        &lt;value&gt;$i18nid:@example.com&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- CUAddrs --&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$i18ncuaddr:&lt;/key&gt;
-                        &lt;value&gt;mailto:$i18nemail:&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$i18ncuaddrurn:&lt;/key&gt;
-                        &lt;value&gt;urn:uuid:$i18nguid:&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!-- relative path to disabled group principal resource--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principaldisabled:&lt;/key&gt;
-                        &lt;value&gt;$principals_groups:disabledgroup/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$principaluridisabled:&lt;/key&gt;
-                        &lt;value&gt;$principals_uids:disabledgroup/&lt;/value&gt;
-                &lt;/substitution&gt;
-                &lt;!-- calendar user address of disabled group--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$cuaddrdisabled:&lt;/key&gt;
-                        &lt;value&gt;$principals_uids:disabledgroup/&lt;/value&gt;
-                &lt;/substitution&gt;
-
-                &lt;!--  Ten other accounts --&gt;
-                &lt;repeat count=&quot;10&quot;&gt;
-                        &lt;!-- user id --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherid%d:&lt;/key&gt;
-                                &lt;value&gt;other%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- user guid --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherguid%d:&lt;/key&gt;
-                                &lt;value&gt;other%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- user name --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherusername%d:&lt;/key&gt;
-                                &lt;value&gt;Other %02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- password --&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherpswd%d:&lt;/key&gt;
-                                &lt;value&gt;other%02d&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user principal resource--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherprincipal%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_users:$otherid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherprincipaluri%d:&lt;/key&gt;
-                                &lt;value&gt;$principals_uids:$otherguid%d:/&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user calendar home--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$othercalendarhome%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$otherguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user calendar--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$othercalendarpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$otherguid%d:/$calendar:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user inbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherinboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$otherguid%d:/$inbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user outbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otheroutboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$otherguid%d:/$outbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user dropbox--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherdropboxpath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$otherguid%d:/$dropbox:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- relative path to user freebusy--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otherfreebusypath%d:&lt;/key&gt;
-                                &lt;value&gt;$calendars_uids:$otherguid%d:/$freebusy:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;!-- calendar user address of user--&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$otheremail%d:&lt;/key&gt;
-                                &lt;value&gt;$otherid%d:@example.com&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$othercuaddr%d:&lt;/key&gt;
-                                &lt;value&gt;mailto:$otheremail%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$othercuaddralt%d:&lt;/key&gt;
-                                &lt;value&gt;$otherprincipaluri%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                        &lt;substitution&gt;
-                                &lt;key&gt;$othercuaddrurn%d:&lt;/key&gt;
-                                &lt;value&gt;urn:uuid:$otherguid%d:&lt;/value&gt;
-                        &lt;/substitution&gt;
-                &lt;/repeat&gt;
-
-                &lt;!--  Override some of the above definitions for special cases --&gt;
-
-                &lt;!-- calendar user address of second user--&gt;
-                &lt;substitution&gt;
-                        &lt;key&gt;$cuaddr2:&lt;/key&gt;
-                        &lt;value&gt;MAILTO:$email2:&lt;/value&gt;
-                &lt;/substitution&gt;
-
-        &lt;/substitutions&gt;
-&lt;/serverinfo&gt;
</del></span></pre></div>
<a id="CalDAVTestertrunkscriptsserverserverinfopodxmlfromrev11854CalDAVTestertrunkscriptsserverserverinfopartitioningxml"></a>
<div class="copfile"><h4>Copied: CalDAVTester/trunk/scripts/server/serverinfo-pod.xml (from rev 11854, CalDAVTester/trunk/scripts/server/serverinfo-partitioning.xml) (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/server/serverinfo-pod.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/server/serverinfo-pod.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,651 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+
+&lt;!DOCTYPE serverinfo SYSTEM &quot;serverinfo.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;serverinfo&gt;
+        &lt;host&gt;localhost&lt;/host&gt;
+        &lt;nonsslport&gt;8008&lt;/nonsslport&gt;
+        &lt;sslport&gt;8443&lt;/sslport&gt;
+
+        &lt;host2&gt;localhost&lt;/host2&gt;
+        &lt;nonsslport2&gt;8108&lt;/nonsslport2&gt;
+        &lt;sslport2&gt;8543&lt;/sslport2&gt;
+
+        &lt;authtype&gt;basic&lt;/authtype&gt;
+
+        &lt;features&gt;
+                &lt;!--  Generic WebDAV extensions --&gt;
+                &lt;feature&gt;COPY Method&lt;/feature&gt;                                                        &lt;!-- COPY method --&gt;
+                &lt;feature&gt;MOVE Method&lt;/feature&gt;                                                        &lt;!-- MOVE method --&gt;
+                &lt;feature&gt;Extended MKCOL&lt;/feature&gt;                                                &lt;!-- Extended MKCOL --&gt;
+                
+                &lt;!-- ACL related --&gt;
+                &lt;feature&gt;ACL Method&lt;/feature&gt;                                                        &lt;!-- ACL method --&gt;
+                &lt;feature&gt;acl-principal-prop-set REPORT&lt;/feature&gt;                &lt;!-- ACL acl-principal-prop-set REPORT --&gt;
+                &lt;feature&gt;principal-match REPORT&lt;/feature&gt;                                &lt;!-- ACL principal-match REPORT --&gt;
+                &lt;feature&gt;principal-property-search REPORT&lt;/feature&gt;                &lt;!-- ACL principal-property-search REPORT --&gt;
+                &lt;feature&gt;principal-search-property-set REPORT&lt;/feature&gt;        &lt;!-- ACL principal-search-property-set REPORT --&gt;
+
+                &lt;feature&gt;add-member&lt;/feature&gt;                                        &lt;!-- Add-member used to create resources --&gt;
+                &lt;!-- &lt;feature&gt;auth-on-root&lt;/feature&gt; --&gt;                &lt;!-- Whether the server requires authentication on the root URI --&gt;
+                &lt;feature&gt;brief&lt;/feature&gt;                                            &lt;!-- Brief header for PROPFIND, REPORT --&gt;
+                &lt;feature&gt;bulk-post&lt;/feature&gt;                                        &lt;!-- Bulk POST requests --&gt;
+                &lt;feature&gt;ctag&lt;/feature&gt;                                                        &lt;!-- ctag extension --&gt;
+                &lt;feature&gt;current-user-principal&lt;/feature&gt;                &lt;!-- current-user-principal extension --&gt;
+                &lt;feature&gt;directory listing&lt;/feature&gt;                         &lt;!-- GET on collection --&gt;
+                &lt;feature&gt;extended-principal-search&lt;/feature&gt;        &lt;!-- Extended principal-property-search REPORT extension --&gt;
+                &lt;feature&gt;expand-property&lt;/feature&gt;                                &lt;!-- Expand property REPORT --&gt;
+                &lt;feature&gt;only-proxy-groups&lt;/feature&gt;                        &lt;!-- Group-membership only includes delegated-to groups --&gt;
+                &lt;feature&gt;limits&lt;/feature&gt;                                                &lt;!-- max-collections and max-resources limits --&gt;
+                &lt;feature&gt;prefer&lt;/feature&gt;                                                &lt;!-- Prefer header overall support --&gt;
+                &lt;feature&gt;prefer-minimal&lt;/feature&gt;                                &lt;!-- Prefer header return=minimal --&gt;
+                &lt;feature&gt;prefer-representation&lt;/feature&gt;                &lt;!-- Prefer header return=representation --&gt;
+                &lt;feature&gt;prefer-noroot&lt;/feature&gt;                                &lt;!-- Prefer header depth-noroot --&gt;
+                &lt;feature&gt;quota&lt;/feature&gt;                                                &lt;!-- WebDAV QUOTA --&gt;
+                &lt;!-- &lt;feature&gt;quota-on-resources&lt;/feature&gt; --&gt;        &lt;!-- WebDAV QUOTA on calendar and address book object resources --&gt;
+                &lt;feature&gt;resource-id&lt;/feature&gt;                                        &lt;!-- WebDAV BIND DAV:resource-id property --&gt;
+                &lt;feature&gt;sync-report&lt;/feature&gt;                                        &lt;!-- WebDAV collection sync REPORT --&gt;
+                &lt;!-- &lt;feature&gt;sync-report-limit&lt;/feature&gt; --&gt;        &lt;!-- WebDAV collection sync REPORT DAV:limit support --&gt;
+                &lt;feature&gt;sync-report-home&lt;/feature&gt;                                &lt;!-- WebDAV collection sync REPORT on Homes --&gt;
+                &lt;feature&gt;well-known&lt;/feature&gt;                                        &lt;!-- well-known feature --&gt;
+
+                &lt;!-- &lt;feature&gt;per-object-ACLs&lt;/feature&gt; --&gt;                &lt;!-- ACL for objects in calendar/address books --&gt;
+                &lt;!-- &lt;feature&gt;regular-collection&lt;/feature&gt; --&gt;  &lt;!-- Regular collections allowed in calendar/address book homes --&gt;
+
+                &lt;!-- &lt;feature&gt;json-data&lt;/feature&gt; --&gt;                        &lt;!-- jCal and jCard support --&gt;
+
+                &lt;!-- CalDAV specific extension --&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;                                            &lt;!-- Basic CalDAV feature enabler --&gt;
+                &lt;feature&gt;attachments-collection&lt;/feature&gt;                &lt;!-- Server uses a collection in same WebDAV tree to store attachments --&gt;
+                &lt;feature&gt;auto-accept&lt;/feature&gt;                                        &lt;!-- Auto-accept for rooms &amp; locations --&gt;
+                &lt;feature&gt;auto-accept-modes&lt;/feature&gt;                        &lt;!-- Auto-accept modes --&gt;
+                &lt;!-- &lt;feature&gt;dropbox&lt;/feature&gt; --&gt;                                &lt;!-- dropbox extension --&gt;
+                &lt;feature&gt;default-alarms&lt;/feature&gt;                                &lt;!-- default alarms extension --&gt;
+                &lt;feature&gt;EMAIL parameter&lt;/feature&gt;                                &lt;!-- Server normalizes cuaddress and adds EMAIL parameter --&gt;
+                &lt;feature&gt;extended-freebusy&lt;/feature&gt;                      &lt;!-- Extended freebusy response --&gt;
+                &lt;feature&gt;implicit-scheduling&lt;/feature&gt;                        &lt;!-- CalDAV scheduling - implicit --&gt;
+                &lt;feature&gt;location-resource-tracking&lt;/feature&gt;   &lt;!-- Server tracks who makes unscheduled changes to locations and resources --&gt;
+                &lt;feature&gt;managed-attachments&lt;/feature&gt;                        &lt;!-- CalDAV Managed Attachments --&gt;
+                &lt;feature&gt;maskuid&lt;/feature&gt;                                                &lt;!-- maskuid extension --&gt;
+                &lt;feature&gt;no-duplicate-uids&lt;/feature&gt;                        &lt;!-- duplicate UIDs in same home not supported --&gt;
+                &lt;feature&gt;partstat-timestamp&lt;/feature&gt;                        &lt;!-- Time stamps when PARTSTAT changes extension --&gt;
+                &lt;feature&gt;podding&lt;/feature&gt;                                                &lt;!-- Podded server --&gt;
+                &lt;feature&gt;private-comments&lt;/feature&gt;                                &lt;!-- private-comments extension --&gt;
+                &lt;feature&gt;private-events&lt;/feature&gt;                                &lt;!-- private-events extension --&gt;
+                &lt;feature&gt;proxy&lt;/feature&gt;                                                &lt;!-- calendar-user-proxy extension --&gt;
+                &lt;!-- &lt;feature&gt;proxy-authz&lt;/feature&gt; --&gt;                        &lt;!-- sudo user extension --&gt;
+                &lt;feature&gt;remove-duplicate-alarms&lt;/feature&gt;           &lt;!-- Server removes any duplicate alarms on PUT --&gt;
+                &lt;feature&gt;query-extended&lt;/feature&gt;                                &lt;!-- calendar-query-extended extension --&gt;
+                &lt;feature&gt;shared-calendars&lt;/feature&gt;                                &lt;!-- Shared calendars extension --&gt;
+                &lt;feature&gt;schedule-changes&lt;/feature&gt;                                &lt;!-- schedule-changes property extension --&gt;
+                &lt;feature&gt;split-calendars&lt;/feature&gt;                                &lt;!-- Calendars are split by component type --&gt;
+                &lt;feature&gt;supported-component-sets&lt;/feature&gt;                &lt;!-- CALDAV:supported-calendar-component-sets on calendar homes --&gt;
+                &lt;feature&gt;supported-component-sets-one&lt;/feature&gt;        &lt;!-- Only single component calendars allowed to be created --&gt;
+                &lt;feature&gt;timerange-low-limit&lt;/feature&gt;                        &lt;!-- Time-range only valid one year back --&gt;
+                &lt;feature&gt;timerange-high-limit&lt;/feature&gt;                        &lt;!-- Time-range only valid 5 years ahead --&gt;
+                &lt;feature&gt;timezones-by-reference&lt;/feature&gt;                &lt;!-- Timezones by reference enabled --&gt;
+                &lt;feature&gt;timezone-service&lt;/feature&gt;                                &lt;!-- Timezone service extension for Wiki --&gt;
+                &lt;feature&gt;timezone-std-service&lt;/feature&gt;                        &lt;!-- Timezone standard service extension --&gt;
+                &lt;feature&gt;vavailability&lt;/feature&gt;                                &lt;!-- VAVAILABILITY on inbox --&gt;
+                &lt;feature&gt;webcal&lt;/feature&gt;                                                &lt;!-- Internet calendar subscription via GET on calendar collection --&gt;
+
+                &lt;!-- CardDAV specific extension --&gt;
+                &lt;feature&gt;carddav&lt;/feature&gt;                                                 &lt;!-- Basic CardDAV feature enabler --&gt;
+                &lt;feature&gt;default-addressbook&lt;/feature&gt;                         &lt;!-- Default address book behavior --&gt;
+                &lt;!-- &lt;feature&gt;global-addressbook&lt;/feature&gt; --&gt;         &lt;!-- Global address book for each user --&gt;
+                &lt;feature&gt;shared-addressbooks&lt;/feature&gt;                        &lt;!-- Shared address books extension --&gt;
+                &lt;!-- &lt;feature&gt;directory-gateway&lt;/feature&gt; --&gt;        &lt;!-- Directory gateway extension --&gt;
+
+        &lt;/features&gt;
+
+        &lt;substitutions&gt;
+                &lt;!-- Useful xpath shortcuts for verifiers --&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$multistatus-response-prefix:&lt;/key&gt;
+                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$multistatus-href-prefix:&lt;/key&gt;
+                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}href&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$verify-response-prefix:&lt;/key&gt;
+                        &lt;value&gt;{DAV:}response/{DAV:}propstat/{DAV:}prop&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$verify-property-prefix:&lt;/key&gt;
+                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$verify-bad-response:&lt;/key&gt;
+                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}status&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$verify-error-response:&lt;/key&gt;
+                        &lt;value&gt;/{DAV:}multistatus/{DAV:}response/{DAV:}error&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$CALDAV:&lt;/key&gt;
+                        &lt;value&gt;urn:ietf:params:xml:ns:caldav&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$CARDDAV:&lt;/key&gt;
+                        &lt;value&gt;urn:ietf:params:xml:ns:carddav&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$CS:&lt;/key&gt;
+                        &lt;value&gt;http://calendarserver.org/ns/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- Server configuration settings --&gt;
+                &lt;!-- $host: and $hostssl: are implicitly added by CalDAVTester based
+                     on the host/nonsslport/sslport values and ssl command line switch --&gt;
+
+                &lt;!-- relative path to caldav root--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$root:&lt;/key&gt;
+                        &lt;value&gt;/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- relative path to main principal collection--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$principalcollection:&lt;/key&gt;
+                        &lt;value&gt;$root:principals/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- the core recored type collections--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$uidstype:&lt;/key&gt;
+                        &lt;value&gt;__uids__&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$userstype:&lt;/key&gt;
+                        &lt;value&gt;users&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$groupstype:&lt;/key&gt;
+                        &lt;value&gt;groups&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$locationstype:&lt;/key&gt;
+                        &lt;value&gt;locations&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$resourcestype:&lt;/key&gt;
+                        &lt;value&gt;resources&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- relative path to record type principal collections--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$principals_uids:&lt;/key&gt;
+                        &lt;value&gt;$principalcollection:$uidstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$principals_users:&lt;/key&gt;
+                        &lt;value&gt;$principalcollection:$userstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$principals_groups:&lt;/key&gt;
+                        &lt;value&gt;$principalcollection:$groupstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$principals_resources:&lt;/key&gt;
+                        &lt;value&gt;$principalcollection:$resourcestype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$principals_locations:&lt;/key&gt;
+                        &lt;value&gt;$principalcollection:$locationstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- relative path to calendars collection--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$calendars:&lt;/key&gt;
+                        &lt;value&gt;$root:calendars/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- relative path to record type calendar collections--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$calendars_uids:&lt;/key&gt;
+                        &lt;value&gt;$calendars:$uidstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$calendars_users:&lt;/key&gt;
+                        &lt;value&gt;$calendars:$userstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$calendars_groups:&lt;/key&gt;
+                        &lt;value&gt;$calendars:$groupstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$calendars_resources:&lt;/key&gt;
+                        &lt;value&gt;$calendars:$resourcestype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$calendars_locations:&lt;/key&gt;
+                        &lt;value&gt;$calendars:$locationstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- primary calendar name--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$calendar:&lt;/key&gt;
+                        &lt;value&gt;calendar&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- primary tasks-only calendar name--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$tasks:&lt;/key&gt;
+                        &lt;value&gt;tasks&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- inbox name--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$inbox:&lt;/key&gt;
+                        &lt;value&gt;inbox&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- outbox name--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$outbox:&lt;/key&gt;
+                        &lt;value&gt;outbox&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- dropbox name--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$dropbox:&lt;/key&gt;
+                        &lt;value&gt;dropbox&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- attachments name--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$attachments:&lt;/key&gt;
+                        &lt;value&gt;dropbox&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- notification name--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$notification:&lt;/key&gt;
+                        &lt;value&gt;notification&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- freebusy name--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$freebusy:&lt;/key&gt;
+                        &lt;value&gt;freebusy&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- server-to-server inbox--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$servertoserver:&lt;/key&gt;
+                        &lt;value&gt;$root:inbox&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- timezone service--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$timezoneservice:&lt;/key&gt;
+                        &lt;value&gt;$root:timezones&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- timezone std service--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$timezonestdservice:&lt;/key&gt;
+                        &lt;value&gt;$root:stdtimezones&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- relative path to addressbooks collection--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$addressbooks:&lt;/key&gt;
+                        &lt;value&gt;$root:addressbooks/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- relative path to record type addressbook collections--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$addressbooks_uids:&lt;/key&gt;
+                        &lt;value&gt;$addressbooks:$uidstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$addressbooks_users:&lt;/key&gt;
+                        &lt;value&gt;$addressbooks:$userstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$addressbooks_groups:&lt;/key&gt;
+                        &lt;value&gt;$addressbooks:$groupstype:/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- primary addressbook name --&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$addressbook:&lt;/key&gt;
+                        &lt;value&gt;addressbook&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- directory name --&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$directory:&lt;/key&gt;
+                        &lt;value&gt;$root:directory/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- global-addressbook name --&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$global_addressbook:&lt;/key&gt;
+                        &lt;value&gt;global-addressbook&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- POST add-member URI suffix --&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$add-member:&lt;/key&gt;
+                        &lt;value&gt;;add-member&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- user id for admin user --&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$useradmin:&lt;/key&gt;
+                        &lt;value&gt;admin&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;!-- guid for admin user --&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$useradminguid:&lt;/key&gt;
+                        &lt;value&gt;admin&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;!-- password for admin user --&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$pswdadmin:&lt;/key&gt;
+                        &lt;value&gt;admin&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!-- relative path to admin principal resource--&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$principal_admin:&lt;/key&gt;
+                        &lt;value&gt;$principals_users:$useradmin:/&lt;/value&gt;
+                &lt;/substitution&gt;
+                &lt;substitution&gt;
+                        &lt;key&gt;$principaluri_admin:&lt;/key&gt;
+                        &lt;value&gt;$principals_uids:$useradminguid:/&lt;/value&gt;
+                &lt;/substitution&gt;
+
+                &lt;!--  Forty podA user accounts --&gt;
+                &lt;repeat count=&quot;40&quot;&gt;
+                        &lt;!-- user id --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$userid%d:&lt;/key&gt;
+                                &lt;value&gt;user%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- user guid --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$userguid%d:&lt;/key&gt;
+                                &lt;value&gt;user%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- user name --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$username%d:&lt;/key&gt;
+                                &lt;value&gt;User %02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- user name URI encoded --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$username-encoded%d:&lt;/key&gt;
+                                &lt;value&gt;User%%20%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- first name --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$firstname%d:&lt;/key&gt;
+                                &lt;value&gt;User&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- last name --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$lastname%d:&lt;/key&gt;
+                                &lt;value&gt;%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- password --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pswd%d:&lt;/key&gt;
+                                &lt;value&gt;user%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user principal resource--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$principal%d:&lt;/key&gt;
+                                &lt;value&gt;$principals_users:$userid%d:/&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$principaluri%d:&lt;/key&gt;
+                                &lt;value&gt;$principals_uids:$userguid%d:/&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$principal%dnoslash:&lt;/key&gt;
+                                &lt;value&gt;$principals_users:$userid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+
+                        &lt;!-- relative path to user calendar home--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$calendarhome%d:&lt;/key&gt;
+                                &lt;value&gt;$calendars_uids:$userguid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user alternate calendar home--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$calendarhomealt%d:&lt;/key&gt;
+                                &lt;value&gt;$calendars_users:$userid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user calendar--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$calendarpath%d:&lt;/key&gt;
+                                &lt;value&gt;$calendarhome%d:/$calendar:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user alternate calendar--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$calendarpathalt%d:&lt;/key&gt;
+                                &lt;value&gt;$calendarhomealt%d:/$calendar:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user tasks calendar--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$taskspath%d:&lt;/key&gt;
+                                &lt;value&gt;$calendarhome%d:/$tasks:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user inbox--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$inboxpath%d:&lt;/key&gt;
+                                &lt;value&gt;$calendarhome%d:/$inbox:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user outbox--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$outboxpath%d:&lt;/key&gt;
+                                &lt;value&gt;$calendarhome%d:/$outbox:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user dropbox--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$dropboxpath%d:&lt;/key&gt;
+                                &lt;value&gt;$calendarhome%d:/$dropbox:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user notification--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$notificationpath%d:&lt;/key&gt;
+                                &lt;value&gt;$calendarhome%d:/$notification:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user freebusy--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$freebusypath%d:&lt;/key&gt;
+                                &lt;value&gt;$calendarhome%d:/$freebusy:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$email%d:&lt;/key&gt;
+                                &lt;value&gt;$userid%d:@example.com&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- calendar user address of user--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$cuaddr%d:&lt;/key&gt;
+                                &lt;value&gt;mailto:$email%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$cuaddralt%d:&lt;/key&gt;
+                                &lt;value&gt;$principaluri%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$cuaddraltnoslash%d:&lt;/key&gt;
+                                &lt;value&gt;$principals_uids:$userguid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$cuaddrurn%d:&lt;/key&gt;
+                                &lt;value&gt;urn:uuid:$userguid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+
+                        &lt;!-- relative path to user addressbook home--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$addressbookhome%d:&lt;/key&gt;
+                                &lt;value&gt;$addressbooks_uids:$userguid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user addressbook--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$addressbookpath%d:&lt;/key&gt;
+                                &lt;value&gt;$addressbooks_uids:$userguid%d:/$addressbook:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                &lt;/repeat&gt;
+
+                &lt;!--  Forty podB user accounts --&gt;
+                &lt;repeat count=&quot;40&quot;&gt;
+                        &lt;!-- user id --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$puserid%d:&lt;/key&gt;
+                                &lt;value&gt;puser%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- user guid --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$puserguid%d:&lt;/key&gt;
+                                &lt;value&gt;puser%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- user name --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pusername%d:&lt;/key&gt;
+                                &lt;value&gt;Puser %02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- user name URI encoded --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pusername-encoded%d:&lt;/key&gt;
+                                &lt;value&gt;Puser%%20%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- first name --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pfirstname%d:&lt;/key&gt;
+                                &lt;value&gt;Puser&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- last name --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$plastname%d:&lt;/key&gt;
+                                &lt;value&gt;%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- password --&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$ppswd%d:&lt;/key&gt;
+                                &lt;value&gt;puser%02d&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user principal resource--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pprincipal%d:&lt;/key&gt;
+                                &lt;value&gt;$principals_users:$puserid%d:/&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pprincipaluri%d:&lt;/key&gt;
+                                &lt;value&gt;$principals_uids:$puserguid%d:/&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pprincipal%dnoslash:&lt;/key&gt;
+                                &lt;value&gt;$principals_users:$puserid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+
+                        &lt;!-- relative path to user calendar home--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pcalendarhome%d:&lt;/key&gt;
+                                &lt;value&gt;$calendars_uids:$puserguid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user alternate calendar home--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pcalendarhomealt%d:&lt;/key&gt;
+                                &lt;value&gt;$calendars_users:$puserid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user calendar--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pcalendarpath%d:&lt;/key&gt;
+                                &lt;value&gt;$pcalendarhome%d:/$calendar:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user alternate calendar--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pcalendarpathalt%d:&lt;/key&gt;
+                                &lt;value&gt;$pcalendarhomealt%d:/$calendar:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user tasks calendar--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$ptaskspath%d:&lt;/key&gt;
+                                &lt;value&gt;$pcalendarhome%d:/$tasks:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user inbox--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pinboxpath%d:&lt;/key&gt;
+                                &lt;value&gt;$pcalendarhome%d:/$inbox:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user outbox--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$poutboxpath%d:&lt;/key&gt;
+                                &lt;value&gt;$pcalendarhome%d:/$outbox:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user dropbox--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pdropboxpath%d:&lt;/key&gt;
+                                &lt;value&gt;$pcalendarhome%d:/$dropbox:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user notification--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pnotificationpath%d:&lt;/key&gt;
+                                &lt;value&gt;$pcalendarhome%d:/$notification:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user freebusy--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pfreebusypath%d:&lt;/key&gt;
+                                &lt;value&gt;$pcalendarhome%d:/$freebusy:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pemail%d:&lt;/key&gt;
+                                &lt;value&gt;$puserid%d:@example.com&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- calendar user address of user--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pcuaddr%d:&lt;/key&gt;
+                                &lt;value&gt;mailto:$pemail%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pcuaddralt%d:&lt;/key&gt;
+                                &lt;value&gt;$pprincipaluri%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pcuaddraltnoslash%d:&lt;/key&gt;
+                                &lt;value&gt;$principals_uids:$puserguid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$pcuaddrurn%d:&lt;/key&gt;
+                                &lt;value&gt;urn:uuid:$puserguid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+
+                        &lt;!-- relative path to user addressbook home--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$paddressbookhome%d:&lt;/key&gt;
+                                &lt;value&gt;$addressbooks_uids:$puserguid%d:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                        &lt;!-- relative path to user addressbook--&gt;
+                        &lt;substitution&gt;
+                                &lt;key&gt;$paddressbookpath%d:&lt;/key&gt;
+                                &lt;value&gt;$paddressbookhome%d:/$addressbook:&lt;/value&gt;
+                        &lt;/substitution&gt;
+                &lt;/repeat&gt;
+
+        &lt;/substitutions&gt;
+&lt;/serverinfo&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptsserverserverinfotemplatexml"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/scripts/server/serverinfo-template.xml (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/server/serverinfo-template.xml        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/scripts/server/serverinfo-template.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -79,8 +79,8 @@
</span><span class="cx">                 &lt;feature&gt;managed-attachments&lt;/feature&gt;                        &lt;!-- CalDAV Managed Attachments --&gt;
</span><span class="cx">                 &lt;feature&gt;maskuid&lt;/feature&gt;                                                &lt;!-- maskuid extension --&gt;
</span><span class="cx">                 &lt;feature&gt;no-duplicate-uids&lt;/feature&gt;                        &lt;!-- duplicate UIDs in same home not supported --&gt;
</span><del>-                &lt;!-- &lt;feature&gt;partitioning&lt;/feature&gt; --&gt;                &lt;!-- Partitioned server --&gt;
</del><span class="cx">                 &lt;feature&gt;partstat-timestamp&lt;/feature&gt;                        &lt;!-- Time stamps when PARTSTAT changes extension --&gt;
</span><ins>+                &lt;!-- &lt;feature&gt;podding&lt;/feature&gt; --&gt;                          &lt;!-- Podded server --&gt;
</ins><span class="cx">                 &lt;feature&gt;private-comments&lt;/feature&gt;                                &lt;!-- private-comments extension --&gt;
</span><span class="cx">                 &lt;feature&gt;private-events&lt;/feature&gt;                                &lt;!-- private-events extension --&gt;
</span><span class="cx">                 &lt;feature&gt;proxy&lt;/feature&gt;                                                &lt;!-- calendar-user-proxy extension --&gt;
</span><span class="lines">@@ -104,7 +104,7 @@
</span><span class="cx">                 &lt;feature&gt;carddav&lt;/feature&gt;                                                 &lt;!-- Basic CardDAV feature enabler --&gt;
</span><span class="cx">                 &lt;feature&gt;default-addressbook&lt;/feature&gt;                         &lt;!-- Default address book behavior --&gt;
</span><span class="cx">                 &lt;!-- &lt;feature&gt;global-addressbook&lt;/feature&gt; --&gt;         &lt;!-- Global address book for each user --&gt;
</span><del>-                &lt;!-- &lt;feature&gt;shared-addressbooks&lt;/feature&gt; --&gt;        &lt;!-- Shared address books extension --&gt;
</del><ins>+                &lt;!-- &lt;feature&gt;shared-addressbooks&lt;/feature&gt; --&gt; &lt;!-- Shared address books extension --&gt;
</ins><span class="cx">                 &lt;!-- &lt;feature&gt;directory-gateway&lt;/feature&gt; --&gt;        &lt;!-- Directory gateway extension --&gt;
</span><span class="cx"> 
</span><span class="cx">         &lt;/features&gt;
</span><span class="lines">@@ -539,7 +539,7 @@
</span><span class="cx">                         &lt;!-- relative path to user addressbook--&gt;
</span><span class="cx">                         &lt;substitution&gt;
</span><span class="cx">                                 &lt;key&gt;$addressbookpath%%d:&lt;/key&gt;
</span><del>-                                &lt;value&gt;$addressbooks_uids:$userguid%%d:/$addressbook:&lt;/value&gt;
</del><ins>+                                &lt;value&gt;$addressbookhome%%d:/$addressbook:&lt;/value&gt;
</ins><span class="cx">                         &lt;/substitution&gt;
</span><span class="cx">                 &lt;/repeat&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="CalDAVTestertrunkscriptsserverserverinfodtd"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/scripts/server/serverinfo.dtd (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/server/serverinfo.dtd        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/scripts/server/serverinfo.dtd        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -14,11 +14,14 @@
</span><span class="cx">  limitations under the License.
</span><span class="cx">  --&gt;
</span><span class="cx"> 
</span><del>-&lt;!ELEMENT serverinfo (host, nonsslport, sslport, authtype?, waitime?, features?, substitutions)? &gt;
</del><ins>+&lt;!ELEMENT serverinfo (host, nonsslport, sslport, host2?, nonsslport2?, sslport2?, authtype?, waitime?, features?, substitutions)? &gt;
</ins><span class="cx"> 
</span><span class="cx">         &lt;!ELEMENT host                        (#PCDATA)&gt;
</span><span class="cx">         &lt;!ELEMENT nonsslport        (#PCDATA)&gt;
</span><span class="cx">         &lt;!ELEMENT sslport                (#PCDATA)&gt;
</span><ins>+        &lt;!ELEMENT host2                        (#PCDATA)&gt;
+        &lt;!ELEMENT nonsslport2        (#PCDATA)&gt;
+        &lt;!ELEMENT sslport2                (#PCDATA)&gt;
</ins><span class="cx">         &lt;!ELEMENT authtype                (#PCDATA)&gt;
</span><span class="cx">         &lt;!ELEMENT waittime      (#PCDATA)&gt;
</span><span class="cx">         &lt;!ELEMENT features      (feature*)&gt;
</span></span></pre></div>
<a id="CalDAVTestertrunkscriptsserverserverinfoxml"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/scripts/server/serverinfo.xml (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/server/serverinfo.xml        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/scripts/server/serverinfo.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -78,9 +78,9 @@
</span><span class="cx">                 &lt;feature&gt;location-resource-tracking&lt;/feature&gt;   &lt;!-- Server tracks who makes unscheduled changes to locations and resources --&gt;
</span><span class="cx">                 &lt;feature&gt;managed-attachments&lt;/feature&gt;                        &lt;!-- CalDAV Managed Attachments --&gt;
</span><span class="cx">                 &lt;feature&gt;maskuid&lt;/feature&gt;                                                &lt;!-- maskuid extension --&gt;
</span><del>-                &lt;!-- &lt;feature&gt;partitioning&lt;/feature&gt; --&gt;                &lt;!-- Partitioned server --&gt;
</del><span class="cx">                 &lt;feature&gt;no-duplicate-uids&lt;/feature&gt;                        &lt;!-- duplicate UIDs in same home not supported --&gt;
</span><span class="cx">                 &lt;feature&gt;partstat-timestamp&lt;/feature&gt;                        &lt;!-- Time stamps when PARTSTAT changes extension --&gt;
</span><ins>+                &lt;!-- &lt;feature&gt;podding&lt;/feature&gt; --&gt;                          &lt;!-- Podded server --&gt;
</ins><span class="cx">                 &lt;feature&gt;private-comments&lt;/feature&gt;                                &lt;!-- private-comments extension --&gt;
</span><span class="cx">                 &lt;feature&gt;private-events&lt;/feature&gt;                                &lt;!-- private-events extension --&gt;
</span><span class="cx">                 &lt;feature&gt;proxy&lt;/feature&gt;                                                &lt;!-- calendar-user-proxy extension --&gt;
</span><span class="lines">@@ -302,13 +302,13 @@
</span><span class="cx">                         &lt;value&gt;$root:stdtimezones&lt;/value&gt;
</span><span class="cx">                 &lt;/substitution&gt;
</span><span class="cx"> 
</span><del>-                &lt;!-- relative path to calendars collection--&gt;
</del><ins>+                &lt;!-- relative path to addressbooks collection--&gt;
</ins><span class="cx">                 &lt;substitution&gt;
</span><span class="cx">                         &lt;key&gt;$addressbooks:&lt;/key&gt;
</span><span class="cx">                         &lt;value&gt;$root:addressbooks/&lt;/value&gt;
</span><span class="cx">                 &lt;/substitution&gt;
</span><span class="cx"> 
</span><del>-                &lt;!-- relative path to record type calendar collections--&gt;
</del><ins>+                &lt;!-- relative path to record type addressbook collections--&gt;
</ins><span class="cx">                 &lt;substitution&gt;
</span><span class="cx">                         &lt;key&gt;$addressbooks_uids:&lt;/key&gt;
</span><span class="cx">                         &lt;value&gt;$addressbooks:$uidstype:/&lt;/value&gt;
</span><span class="lines">@@ -540,7 +540,7 @@
</span><span class="cx">                         &lt;!-- relative path to user addressbook--&gt;
</span><span class="cx">                         &lt;substitution&gt;
</span><span class="cx">                                 &lt;key&gt;$addressbookpath%d:&lt;/key&gt;
</span><del>-                                &lt;value&gt;$addressbooks_uids:$userguid%d:/$addressbook:&lt;/value&gt;
</del><ins>+                                &lt;value&gt;$addressbookhome%d:/$addressbook:&lt;/value&gt;
</ins><span class="cx">                         &lt;/substitution&gt;
</span><span class="cx">                 &lt;/repeat&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="CalDAVTestertrunkscriptstestsCalDAVcaldavtestdtd"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/caldavtest.dtd        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -31,7 +31,8 @@
</span><span class="cx"> 
</span><span class="cx">         &lt;!ELEMENT request (require-feature?, exclude-feature?, method, ruri*, header*, data?, verify*,
</span><span class="cx">                                                 graburi?, grabcount?, grabheader*, grabproperty*, grabelement*, grabcalproperty*, grabcalparameter*)&gt;
</span><del>-                &lt;!ATTLIST request auth (yes|no) &quot;yes&quot;
</del><ins>+                &lt;!ATTLIST request host2 (yes|no) &quot;no&quot;
+                                                 auth (yes|no) &quot;yes&quot;
</ins><span class="cx">                                                  user CDATA &quot;&quot;
</span><span class="cx">                                                  pswd CDATA &quot;&quot;
</span><span class="cx">                                                  end-delete (yes|no) &quot;no&quot;
</span></span></pre></div>
<a id="CalDAVTestertrunkscriptstestsCardDAVcaldavtestdtd"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/scripts/tests/CardDAV/caldavtest.dtd        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -31,7 +31,8 @@
</span><span class="cx"> 
</span><span class="cx">         &lt;!ELEMENT request (require-feature?, exclude-feature?, method, ruri*, header*, data?, verify*,
</span><span class="cx">                                                 graburi?, grabcount?, grabheader*, grabproperty*, grabelement*, grabcalproperty*, grabcalparameter*)&gt;
</span><del>-                &lt;!ATTLIST request auth (yes|no) &quot;yes&quot;
</del><ins>+                &lt;!ATTLIST request host2 (yes|no) &quot;no&quot;
+                                                 auth (yes|no) &quot;yes&quot;
</ins><span class="cx">                                                  user CDATA &quot;&quot;
</span><span class="cx">                                                  pswd CDATA &quot;&quot;
</span><span class="cx">                                                  end-delete (yes|no) &quot;no&quot;
</span></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVcaldavtestdtd"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/caldavtest.dtd (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/caldavtest.dtd                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/caldavtest.dtd        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,84 @@
</span><ins>+&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;!ELEMENT caldavtest (description?, require-feature?, start, test-suite*, end) &gt;
+        &lt;!ATTLIST caldavtest ignore-all (yes|no) &quot;no&quot;&gt;
+
+        &lt;!ELEMENT description (#PCDATA)&gt;
+
+        &lt;!ELEMENT require-feature (feature*)&gt;
+                &lt;!ELEMENT feature (#PCDATA)&gt;
+        &lt;!ELEMENT exclude-feature (feature*)&gt;
+                &lt;!ELEMENT feature (#PCDATA)&gt;
+
+        &lt;!ELEMENT start (request*)&gt;
+        &lt;!ELEMENT end (request*)&gt;
+
+        &lt;!ELEMENT pause EMPTY&gt;
+
+        &lt;!ELEMENT request (require-feature?, exclude-feature?, method, ruri*, header*, data?, verify*,
+                                                graburi?, grabcount?, grabheader*, grabproperty*, grabelement*, grabcalproperty*, grabcalparameter*)&gt;
+                &lt;!ATTLIST request host2 (yes|no) &quot;no&quot;
+                                                 auth (yes|no) &quot;yes&quot;
+                                                 user CDATA &quot;&quot;
+                                                 pswd CDATA &quot;&quot;
+                                                 end-delete (yes|no) &quot;no&quot;
+                                                 print-response (yes|no) &quot;no&quot;
+                                                 iterate-data (yes|no) &quot;no&quot;
+                                                 wait-for-success (yes|no) &quot;no&quot;&gt;
+                
+                &lt;!ELEMENT method (#PCDATA)&gt;
+                &lt;!ELEMENT ruri (#PCDATA)&gt;
+                &lt;!ELEMENT header (name, value)&gt;
+                        &lt;!ELEMENT name (#PCDATA)&gt;
+                        &lt;!ELEMENT value (#PCDATA)&gt;
+                &lt;!ELEMENT data (content-type, filepath)&gt;
+                        &lt;!ATTLIST data substitutions (yes|no) &quot;yes&quot;
+                                       generate      (yes|no) &quot;no&quot;&gt;
+                        &lt;!ELEMENT content-type (#PCDATA)&gt;
+                        &lt;!ELEMENT filepath (#PCDATA)&gt;
+
+                &lt;!ELEMENT verify (require-feature?, exclude-feature?, callback, arg*)&gt;
+                        
+                                &lt;!ELEMENT callback (#PCDATA)&gt;
+                                &lt;!ELEMENT arg (name, value*)&gt;
+                
+                &lt;!ELEMENT graburi (#PCDATA)&gt;
+
+                &lt;!ELEMENT grabcount (#PCDATA)&gt;
+
+                &lt;!ELEMENT grabheader (name, variable)&gt;
+        
+                &lt;!ELEMENT grabproperty (property, variable)&gt;
+                        &lt;!ELEMENT property (#PCDATA)&gt;
+                        &lt;!ELEMENT variable (#PCDATA)&gt;
+
+                &lt;!ELEMENT grabelement (name, parent*, variable+)&gt;
+
+                &lt;!ELEMENT grabcalproperty (name, variable)&gt;
+                &lt;!ELEMENT grabcalparameter (name, variable)&gt;
+
+        &lt;!ELEMENT test-suite (require-feature?, exclude-feature?, test*)&gt;
+                &lt;!ATTLIST test-suite name CDATA #REQUIRED
+                                                        ignore (yes|no) &quot;no&quot;
+                                                        only (yes|no) &quot;no&quot;&gt;
+        
+                &lt;!ELEMENT test (require-feature?, exclude-feature?, description?, (request|pause)+)&gt;
+                        &lt;!ATTLIST test name CDATA #REQUIRED
+                                                  count CDATA &quot;1&quot;
+                                                  stats (yes|no) &quot;no&quot;
+                                                  ignore (yes|no) &quot;no&quot;
+                                                  only (yes|no) &quot;no&quot;&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVcalendaruserproxyxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/calendaruserproxy.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/calendaruserproxy.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/calendaruserproxy.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,2057 @@
</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.
+
+ DRI: Cyrus Daboo, cdaboo@apple.com
+ --&gt;
+
+&lt;caldavtest&gt;
+        &lt;description&gt;Test proxy user features&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;proxy&lt;/feature&gt;
+                &lt;feature&gt;podding&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request end-delete=&quot;yes&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/delete/1.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot; end-delete=&quot;yes&quot;&gt;
+                        &lt;method&gt;PUT&lt;/method&gt;
+                        &lt;ruri&gt;$pcalendarpath1:/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/delete/1.txt&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Proxy on podB' ignore=&quot;no&quot;&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Add podB user as read proxy for podA user01&lt;/description&gt;
+                        &lt;request&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/podding/calendaruserproxy/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;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-read/&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/podding/calendaruserproxy/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;&lt;![CDATA[{DAV:}group-member-set$&lt;href xmlns=&quot;DAV:&quot;&gt;$pprincipaluri1:&lt;/href&gt;]]&gt;&lt;/value&gt;
+                                                &lt;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Verify single group membership&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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:}group-member-set[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-membership/{DAV:}href[=$principaluri1:calendar-proxy-read/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;200&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Verify no access for write&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&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/podding/calendaruserproxy/3.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='9'&gt;
+                        &lt;description&gt;Clear podB user as read-only proxy for podA user01&lt;/description&gt;
+                        &lt;request&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/podding/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;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-read/&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13'&gt;
+                        &lt;description&gt;Add podB user as read-write proxy for podA user01&lt;/description&gt;
+                        &lt;request&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/podding/calendaruserproxy/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;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&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/podding/calendaruserproxy/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:}group-membership[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-member-set/{DAV:}href[=$pprincipaluri1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='15'&gt;
+                        &lt;description&gt;Verify single group membership&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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:}group-member-set[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-membership/{DAV:}href[=$principaluri1:calendar-proxy-write/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;200&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='17'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&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/podding/calendaruserproxy/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='18'&gt;
+                        &lt;description&gt;Verify access for writing&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&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/podding/calendaruserproxy/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='19'&gt;
+                        &lt;description&gt;Clear podB user as read-write proxy for podA user01&lt;/description&gt;
+                        &lt;request&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/podding/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;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='20'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='21'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='22'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Proxy on podB - requests from podB' ignore=&quot;no&quot;&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Add podB user as read proxy for podA user01&lt;/description&gt;
+                        &lt;request host2='yes'&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/podding/calendaruserproxy/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;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-read/&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/podding/calendaruserproxy/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;&lt;![CDATA[{DAV:}group-member-set$&lt;href xmlns=&quot;DAV:&quot;&gt;$pprincipaluri1:&lt;/href&gt;]]&gt;&lt;/value&gt;
+                                                &lt;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Verify single group membership&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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:}group-member-set[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-membership/{DAV:}href[=$principaluri1:calendar-proxy-read/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;200&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Verify no access for write&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&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/podding/calendaruserproxy/3.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='9'&gt;
+                        &lt;description&gt;Clear podB user as read-only proxy for podA user01&lt;/description&gt;
+                        &lt;request host2='yes'&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/podding/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;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-read/&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13'&gt;
+                        &lt;description&gt;Add podB user as read-write proxy for podA user01&lt;/description&gt;
+                        &lt;request host2='yes'&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/podding/calendaruserproxy/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;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&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/podding/calendaruserproxy/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:}group-membership[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-member-set/{DAV:}href[=$pprincipaluri1:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='15'&gt;
+                        &lt;description&gt;Verify single group membership&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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:}group-member-set[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-membership/{DAV:}href[=$principaluri1:calendar-proxy-write/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;200&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='17'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&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/podding/calendaruserproxy/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='18'&gt;
+                        &lt;description&gt;Verify access for writing&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&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/podding/calendaruserproxy/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='19'&gt;
+                        &lt;description&gt;Clear podB user as read-write proxy for podA user01&lt;/description&gt;
+                        &lt;request host2='yes'&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/podding/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;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:calendar-proxy-write/&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='20'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='21'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='22'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Proxy on podA' ignore=&quot;no&quot;&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Add podA user02 as read proxy for podB user&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1: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/podding/calendaruserproxy/6.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;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:calendar-proxy-read/&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/podding/calendaruserproxy/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:}group-membership[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-member-set/{DAV:}href[=$principaluri2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Verify single group membership&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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:}group-member-set[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-membership/{DAV:}href[=$pprincipaluri1:calendar-proxy-read/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;200&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Verify no access for writing&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/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/podding/calendaruserproxy/3.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='9'&gt;
+                        &lt;description&gt;Clear podA user02 as read-only proxy for podB user&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1: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/podding/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;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:calendar-proxy-read/&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13'&gt;
+                        &lt;description&gt;Add podA user02 as read-write proxy for podB user&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1: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/podding/calendaruserproxy/6.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;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:calendar-proxy-write/&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/podding/calendaruserproxy/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:}group-membership[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-member-set/{DAV:}href[=$principaluri2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='15'&gt;
+                        &lt;description&gt;Verify single group membership&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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:}group-member-set[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-membership/{DAV:}href[=$pprincipaluri1:calendar-proxy-write/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;200&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='17'&gt;
+                        &lt;description&gt;Verify write access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/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/podding/calendaruserproxy/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='18'&gt;
+                        &lt;description&gt;Verify access for new resource&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/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/podding/calendaruserproxy/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='19'&gt;
+                        &lt;description&gt;Clear podA user02 as read-write proxy for podB user&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1: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/podding/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;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:calendar-proxy-write/&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='20'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='21'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='22'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name='Proxy on podA - requests from podB' ignore=&quot;no&quot;&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Add podA user02 as read proxy for podB user&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1: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/podding/calendaruserproxy/6.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;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:calendar-proxy-read/&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/podding/calendaruserproxy/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:}group-membership[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-member-set/{DAV:}href[=$principaluri2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;Verify single group membership&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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:}group-member-set[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-membership/{DAV:}href[=$pprincipaluri1:calendar-proxy-read/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='7'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;200&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Verify no access for writing&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/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/podding/calendaruserproxy/3.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='9'&gt;
+                        &lt;description&gt;Clear podA user02 as read-only proxy for podB user&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1: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/podding/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;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:calendar-proxy-read/&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='11'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='13'&gt;
+                        &lt;description&gt;Add podA user02 as read-write proxy for podB user&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1: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/podding/calendaruserproxy/6.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;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:calendar-proxy-write/&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/podding/calendaruserproxy/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:}group-membership[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-member-set/{DAV:}href[=$principaluri2:]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='15'&gt;
+                        &lt;description&gt;Verify single group membership&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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:}group-member-set[|]&lt;/value&gt;
+                                                &lt;value&gt;$verify-property-prefix:/{DAV:}group-membership/{DAV:}href[=$pprincipaluri1:calendar-proxy-write/]&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16'&gt;
+                        &lt;description&gt;Verify access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;200&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='17'&gt;
+                        &lt;description&gt;Verify write access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/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/podding/calendaruserproxy/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='18'&gt;
+                        &lt;description&gt;Verify access for new resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/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/podding/calendaruserproxy/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='19'&gt;
+                        &lt;description&gt;Clear podA user02 as read-write proxy for podB user&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1: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/podding/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;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:calendar-proxy-write/&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='20'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='21'&gt;
+                        &lt;description&gt;Verify no group memberships right now&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal2:&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/podding/calendaruserproxy/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;value&gt;{DAV:}group-membership$&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='22'&gt;
+                        &lt;description&gt;Verify no access to resource&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/1.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;403&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="CalDAVTestertrunkscriptstestspodCalDAVimplicitproxyxml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/implicitproxy.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/implicitproxy.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/implicitproxy.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,320 @@
</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 implicit scheduling done by proxies across pods&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;proxy&lt;/feature&gt;
+                &lt;feature&gt;implicit-scheduling&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                        &lt;method&gt;GET&lt;/method&gt;
+                        &lt;ruri&gt;$pcalendarpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                        &lt;method&gt;GET&lt;/method&gt;
+                        &lt;ruri&gt;$calendarpath2:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                        &lt;method&gt;GET&lt;/method&gt;
+                        &lt;ruri&gt;$calendarpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$principal2: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/podding/implicitproxy/1.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$principal3: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/podding/implicitproxy/1.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='Proxy as Organizer'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Proxy creates new event&lt;/description&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:'&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/podding/implicitproxy/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'&gt;
+                        &lt;description&gt;No items in user02 Inbox&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath2:/&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/podding/implicitproxy/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;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='3'&gt;
+                        &lt;description&gt;One item in user02 Calendar&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/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/podding/implicitproxy/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;One item in user03 Inbox&lt;/description&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath3:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;One item in user03 calendar&lt;/description&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath3:/&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/podding/implicitproxy/6.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 as Attendee'&gt;
+                &lt;test name='2'&gt;
+                        &lt;description&gt;Proxy updates event&lt;/description&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:' print-response='no'&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath3:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:' print-response='no'&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/podding/implicitproxy/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='3'&gt;
+                        &lt;description&gt;One item in user02 Inbox&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;One item in user02 Calendar&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/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/podding/implicitproxy/8.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='5'&gt;
+                        &lt;description&gt;No item in user03 Inbox&lt;/description&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath3:/&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/CalDAV/podding/implicitproxy/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;0&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='6'&gt;
+                        &lt;description&gt;One item in user03 calendar&lt;/description&gt;
+                        &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath3:/&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/podding/implicitproxy/9.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+        
+        &lt;test-suite name=&quot;Undo proxy&quot;&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Remove proxy&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal2: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/podding/implicitproxy/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;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                                &lt;method&gt;PROPPATCH&lt;/method&gt;
+                                &lt;ruri&gt;$principal3: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/podding/implicitproxy/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='2'&gt;
+                        &lt;description&gt;Writer cannot read existing event&lt;/description&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/1.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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath3:/1.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;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 host2='yes' user='$puserid1:' pswd='$ppswd1:'&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$pinboxpath1:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pcalendarpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$inboxpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$calendarpath2:/&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;$inboxpath3:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$calendarpath3:/&lt;/ruri&gt;
+                &lt;/request&gt;
+
+                &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$principal2: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/podding/implicitproxy/2.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                        &lt;method&gt;PROPPATCH&lt;/method&gt;
+                        &lt;ruri&gt;$principal3: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/podding/implicitproxy/2.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                        &lt;method&gt;ACL&lt;/method&gt;
+                        &lt;ruri&gt;$calendarpath2:/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/podding/implicitproxy/11.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+                &lt;request user=&quot;$userid3:&quot; pswd=&quot;$pswd3:&quot;&gt;
+                        &lt;method&gt;ACL&lt;/method&gt;
+                        &lt;ruri&gt;$calendarpath3:/&lt;/ruri&gt;
+                        &lt;data&gt;
+                                &lt;content-type&gt;text/xml; charset=utf-8&lt;/content-type&gt;
+                                &lt;filepath&gt;Resource/CalDAV/podding/implicitproxy/11.xml&lt;/filepath&gt;
+                        &lt;/data&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+        
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVimplicitsimplexml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/implicitsimple.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/implicitsimple.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/implicitsimple.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,521 @@
</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;Podding cross-pod scheduling&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;implicit-scheduling&lt;/feature&gt;
+                &lt;feature&gt;podding&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start&gt;
+                &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                        &lt;method&gt;DELETEALL&lt;/method&gt;
+                        &lt;ruri&gt;$inboxpath1:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$inboxpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pinboxpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/start&gt;
+        
+        &lt;test-suite name='#1 scheduling across nodes' ignore='no'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Organizer invites Attendees&lt;/description&gt;
+                        &lt;request&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/podding/implicitschedule/suite1/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;Organizer checks data&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/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/podding/implicitschedule/suite1/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;Attendee Inbox Items&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$pinboxpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Attendees have data&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/&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/podding/implicitschedule/suite1/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/&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/podding/implicitschedule/suite1/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;PodA -&gt; Accepted&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/podding/implicitschedule/suite1/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='7'&gt;
+                        &lt;description&gt;Organizer Inbox Item&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Organizer data changed&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/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/podding/implicitschedule/suite1/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;PodB no Inbox Item&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pinboxpath1:/&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 name='11'&gt;
+                        &lt;description&gt;PodB data changed&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/&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/podding/implicitschedule/suite1/6.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;PodB -&gt; Decline&lt;/description&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/podding/implicitschedule/suite1/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='13'&gt;
+                        &lt;description&gt;Organizer Inbox Item&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14'&gt;
+                        &lt;description&gt;Organizer data changed&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/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/podding/implicitschedule/suite1/8.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16'&gt;
+                        &lt;description&gt;PodA no Inbox Item&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath2:/&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 name='17'&gt;
+                        &lt;description&gt;PodA data changed&lt;/description&gt;
+                        &lt;request user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/&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/podding/implicitschedule/suite1/9.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='18'&gt;
+                        &lt;description&gt;Clean-up&lt;/description&gt;
+                        &lt;request user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$inboxpath1:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$calendarpath2:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$inboxpath2:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$pinboxpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+        &lt;/test-suite&gt;
+
+        &lt;test-suite name='#2 scheduling across nodes - from podB' ignore='no'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;Organizer invites Attendees&lt;/description&gt;
+                        &lt;request host2='yes'&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/podding/implicitschedule/suite1/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;Organizer checks data&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/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/podding/implicitschedule/suite1/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;Attendee Inbox Items&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath2:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$pinboxpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;Attendees have data&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/&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/podding/implicitschedule/suite1/3.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/&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/podding/implicitschedule/suite1/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;PodA -&gt; Accepted&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/podding/implicitschedule/suite1/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='7'&gt;
+                        &lt;description&gt;Organizer Inbox Item&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='8'&gt;
+                        &lt;description&gt;Organizer data changed&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/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/podding/implicitschedule/suite1/5.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='10'&gt;
+                        &lt;description&gt;PodB no Inbox Item&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pinboxpath1:/&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 name='11'&gt;
+                        &lt;description&gt;PodB data changed&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/&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/podding/implicitschedule/suite1/6.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='12'&gt;
+                        &lt;description&gt;PodB -&gt; Decline&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/&lt;/ruri&gt;
+                                &lt;verify&gt;
+                                        &lt;callback&gt;statusCode&lt;/callback&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                        &lt;request host2='yes' user=&quot;$puserid1:&quot; pswd=&quot;$ppswd1:&quot;&gt;
+                                &lt;method&gt;PUT&lt;/method&gt;
+                                &lt;ruri&gt;$&lt;/ruri&gt;
+                                &lt;data&gt;
+                                        &lt;content-type&gt;text/calendar; charset=utf-8&lt;/content-type&gt;
+                                        &lt;filepath&gt;Resource/CalDAV/podding/implicitschedule/suite1/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='13'&gt;
+                        &lt;description&gt;Organizer Inbox Item&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;WAITDELETEALL 1&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath1:/&lt;/ruri&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='14'&gt;
+                        &lt;description&gt;Organizer data changed&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;GET&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/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/podding/implicitschedule/suite1/8.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='16'&gt;
+                        &lt;description&gt;PodA no Inbox Item&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$inboxpath2:/&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 name='17'&gt;
+                        &lt;description&gt;PodA data changed&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$userid2:&quot; pswd=&quot;$pswd2:&quot;&gt;
+                                &lt;method&gt;GETNEW&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath2:/&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/podding/implicitschedule/suite1/9.ics&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='18'&gt;
+                        &lt;description&gt;Clean-up&lt;/description&gt;
+                        &lt;request host2='yes' user=&quot;$useradmin:&quot; pswd=&quot;$pswdadmin:&quot;&gt;
+                                &lt;method&gt;DELETEALL&lt;/method&gt;
+                                &lt;ruri&gt;$calendarpath1:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$inboxpath1:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$calendarpath2:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$inboxpath2:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$pcalendarpath1:/&lt;/ruri&gt;
+                                &lt;ruri&gt;$pinboxpath1:/&lt;/ruri&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;$calendarpath1:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$inboxpath1:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$calendarpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$inboxpath2:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pcalendarpath1:/&lt;/ruri&gt;
+                        &lt;ruri&gt;$pinboxpath1:/&lt;/ruri&gt;
+                &lt;/request&gt;
+        &lt;/end&gt;
+        
+&lt;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunkscriptstestspodCalDAVsimplexml"></a>
<div class="addfile"><h4>Added: CalDAVTester/trunk/scripts/tests-pod/CalDAV/simple.xml (0 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/scripts/tests-pod/CalDAV/simple.xml                                (rev 0)
+++ CalDAVTester/trunk/scripts/tests-pod/CalDAV/simple.xml        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -0,0 +1,349 @@
</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;Simple podding test&lt;/description&gt;
+
+        &lt;require-feature&gt;
+                &lt;feature&gt;caldav&lt;/feature&gt;
+                &lt;feature&gt;podding&lt;/feature&gt;
+        &lt;/require-feature&gt;
+
+        &lt;start/&gt;
+        
+        &lt;test-suite name='Access principals via podA'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;PROPFIND of user on podA as user on podA&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:/&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/count.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 user on podB as user on podA&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:/&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/count.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;PROPFIND of user on podA as user on podB&lt;/description&gt;
+                        &lt;request user='$puserid1:' pswd='$ppswd1:'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:/&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/count.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;PROPFIND of user on podB as user on podB&lt;/description&gt;
+                        &lt;request user='$puserid1:' pswd='$ppswd1:'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:/&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/count.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='Access principals via podB'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;PROPFIND of user on podA as user on podA&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:/&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/count.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 user on podB as user on podA&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:/&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/count.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;PROPFIND of user on podA as user on podB&lt;/description&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$principal1:/&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/count.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;PROPFIND of user on podB as user on podB&lt;/description&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pprincipal1:/&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/count.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='Access calendar homes via podA'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;PROPFIND of user on podA as user on podA&lt;/description&gt;
+                        &lt;request&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;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/count.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 user on podB as user on podA&lt;/description&gt;
+                        &lt;request&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome1:/&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/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;403&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 user on podA as user on podB&lt;/description&gt;
+                        &lt;request user='$puserid1:' pswd='$ppswd1:'&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;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/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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;PROPFIND of user on podB as user on podB&lt;/description&gt;
+                        &lt;request user='$puserid1:' pswd='$ppswd1:'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome1:/&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/count.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='Access calendar homes via podB' only='yes'&gt;
+                &lt;test name='1'&gt;
+                        &lt;description&gt;PROPFIND of user on podA as user on podA&lt;/description&gt;
+                        &lt;request host2='yes'&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;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/count.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 user on podB as user on podA&lt;/description&gt;
+                        &lt;request host2='yes'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome1:/&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/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;403&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 user on podA as user on podB&lt;/description&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:'&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;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/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;403&lt;/value&gt;
+                                        &lt;/arg&gt;
+                                &lt;/verify&gt;
+                        &lt;/request&gt;
+                &lt;/test&gt;
+                &lt;test name='4'&gt;
+                        &lt;description&gt;PROPFIND of user on podB as user on podB&lt;/description&gt;
+                        &lt;request host2='yes' user='$puserid1:' pswd='$ppswd1:'&gt;
+                                &lt;method&gt;PROPFIND&lt;/method&gt;
+                                &lt;ruri&gt;$pcalendarhome1:/&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/count.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;/caldavtest&gt;
</ins></span></pre></div>
<a id="CalDAVTestertrunksrccaldavtestpy"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/src/caldavtest.py (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/src/caldavtest.py        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/src/caldavtest.py        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -583,7 +583,7 @@
</span><span class="cx">             stats.startTimer()
</span><span class="cx"> 
</span><span class="cx">         # Do the http request
</span><del>-        http = SmartHTTPConnection(self.manager.server_info.host, self.manager.server_info.port, self.manager.server_info.ssl)
</del><ins>+        http = SmartHTTPConnection(req.host, req.port, self.manager.server_info.ssl)
</ins><span class="cx"> 
</span><span class="cx">         if not 'User-Agent' in headers and label is not None:
</span><span class="cx">             headers['User-Agent'] = label.encode(&quot;utf-8&quot;)
</span></span></pre></div>
<a id="CalDAVTestertrunksrcmanagerpy"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/src/manager.py (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/src/manager.py        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/src/manager.py        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -100,12 +100,22 @@
</span><span class="cx">         # Setup ssl stuff
</span><span class="cx">         self.server_info.ssl = ssl
</span><span class="cx">         self.server_info.port = self.server_info.sslport if ssl else self.server_info.nonsslport
</span><ins>+        self.server_info.port2 = self.server_info.sslport2 if ssl else self.server_info.nonsslport2
+
</ins><span class="cx">         moresubs[&quot;$host:&quot;] = &quot;%s://%s:%d&quot; % (
</span><span class="cx">             &quot;https&quot; if ssl else &quot;http&quot;,
</span><span class="cx">             self.server_info.host,
</span><span class="cx">             self.server_info.port,
</span><span class="cx">         )
</span><span class="cx">         moresubs[&quot;$hostssl:&quot;] = &quot;https://%s:%d&quot; % (self.server_info.host, self.server_info.sslport,)
</span><ins>+
+        moresubs[&quot;$host2:&quot;] = &quot;%s://%s:%d&quot; % (
+            &quot;https&quot; if ssl else &quot;http&quot;,
+            self.server_info.host2,
+            self.server_info.port2,
+        )
+        moresubs[&quot;$hostssl2:&quot;] = &quot;https://%s:%d&quot; % (self.server_info.host2, self.server_info.sslport2,)
+
</ins><span class="cx">         self.server_info.addsubs(moresubs)
</span><span class="cx"> 
</span><span class="cx">         for testfile in testfiles:
</span></span></pre></div>
<a id="CalDAVTestertrunksrcrequestpy"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/src/request.py (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/src/request.py        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/src/request.py        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -142,6 +142,8 @@
</span><span class="cx"> 
</span><span class="cx">     def __init__(self, manager):
</span><span class="cx">         self.manager = manager
</span><ins>+        self.host = self.manager.server_info.host
+        self.port = self.manager.server_info.port
</ins><span class="cx">         self.auth = True
</span><span class="cx">         self.user = &quot;&quot;
</span><span class="cx">         self.pswd = &quot;&quot;
</span><span class="lines">@@ -345,6 +347,10 @@
</span><span class="cx">         self.iterate_data = getYesNoAttributeValue(node, src.xmlDefs.ATTR_ITERATE_DATA)
</span><span class="cx">         self.wait_for_success = getYesNoAttributeValue(node, src.xmlDefs.ATTR_WAIT_FOR_SUCCESS)
</span><span class="cx"> 
</span><ins>+        if node.get(src.xmlDefs.ATTR_HOST2, src.xmlDefs.ATTR_VALUE_NO) == src.xmlDefs.ATTR_VALUE_YES:
+            self.host = self.manager.server_info.host2
+            self.port = self.manager.server_info.port2
+
</ins><span class="cx">         for child in node.getchildren():
</span><span class="cx">             if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
</span><span class="cx">                 self.parseFeatures(child, require=True)
</span></span></pre></div>
<a id="CalDAVTestertrunksrcserverinfopy"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/src/serverinfo.py (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/src/serverinfo.py        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/src/serverinfo.py        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -30,6 +30,9 @@
</span><span class="cx">         self.host = &quot;&quot;
</span><span class="cx">         self.nonsslport = 80
</span><span class="cx">         self.sslport = 443
</span><ins>+        self.host2 = &quot;&quot;
+        self.nonsslport2 = 80
+        self.sslport2 = 443
</ins><span class="cx">         self.authtype = &quot;basic&quot;
</span><span class="cx">         self.features = set()
</span><span class="cx">         self.user = &quot;&quot;
</span><span class="lines">@@ -131,6 +134,15 @@
</span><span class="cx">                 self.nonsslport = int(child.text)
</span><span class="cx">             elif child.tag == src.xmlDefs.ELEMENT_SSLPORT:
</span><span class="cx">                 self.sslport = int(child.text)
</span><ins>+            elif child.tag == src.xmlDefs.ELEMENT_HOST2:
+                try:
+                    self.host2 = child.text.encode(&quot;utf-8&quot;)
+                except:
+                    self.host2 = &quot;localhost&quot;
+            elif child.tag == src.xmlDefs.ELEMENT_NONSSLPORT2:
+                self.nonsslport2 = int(child.text)
+            elif child.tag == src.xmlDefs.ELEMENT_SSLPORT2:
+                self.sslport2 = int(child.text)
</ins><span class="cx">             elif child.tag == src.xmlDefs.ELEMENT_AUTHTYPE:
</span><span class="cx">                 self.authtype = child.text.encode(&quot;utf-8&quot;)
</span><span class="cx">             elif child.tag == src.xmlDefs.ELEMENT_WAITTIME:
</span></span></pre></div>
<a id="CalDAVTestertrunksrcxmlDefspy"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/src/xmlDefs.py (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/src/xmlDefs.py        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/src/xmlDefs.py        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -39,6 +39,7 @@
</span><span class="cx"> ELEMENT_GRABURI = &quot;graburi&quot;
</span><span class="cx"> ELEMENT_HEADER = &quot;header&quot;
</span><span class="cx"> ELEMENT_HOST = &quot;host&quot;
</span><ins>+ELEMENT_HOST2 = &quot;host2&quot;
</ins><span class="cx"> ELEMENT_KEY = &quot;key&quot;
</span><span class="cx"> ELEMENT_LOGGING = &quot;logging&quot;
</span><span class="cx"> ELEMENT_MAILFROM = &quot;mailfrom&quot;
</span><span class="lines">@@ -46,6 +47,7 @@
</span><span class="cx"> ELEMENT_METHOD = &quot;method&quot;
</span><span class="cx"> ELEMENT_NAME = &quot;name&quot;
</span><span class="cx"> ELEMENT_NONSSLPORT = &quot;nonsslport&quot;
</span><ins>+ELEMENT_NONSSLPORT2 = &quot;nonsslport2&quot;
</ins><span class="cx"> ELEMENT_NOTIFY = &quot;notify&quot;
</span><span class="cx"> ELEMENT_PARENT = &quot;parent&quot;
</span><span class="cx"> ELEMENT_PAUSE = &quot;pause&quot;
</span><span class="lines">@@ -59,6 +61,7 @@
</span><span class="cx"> ELEMENT_SERVERINFO = &quot;serverinfo&quot;
</span><span class="cx"> ELEMENT_SPREAD = &quot;spread&quot;
</span><span class="cx"> ELEMENT_SSLPORT = &quot;sslport&quot;
</span><ins>+ELEMENT_SSLPORT2 = &quot;sslport2&quot;
</ins><span class="cx"> ELEMENT_START = &quot;start&quot;
</span><span class="cx"> ELEMENT_SUBJECT = &quot;subject&quot;
</span><span class="cx"> ELEMENT_SUBSTITUTIONS = &quot;substitutions&quot;
</span><span class="lines">@@ -75,6 +78,7 @@
</span><span class="cx"> ELEMENT_WAITTIME = &quot;waittime&quot;
</span><span class="cx"> ELEMENT_WARNINGTIME = &quot;warningtime&quot;
</span><span class="cx"> 
</span><ins>+ATTR_HOST2 = &quot;host2&quot;
</ins><span class="cx"> ATTR_AUTH = &quot;auth&quot;
</span><span class="cx"> ATTR_COUNT = &quot;count&quot;
</span><span class="cx"> ATTR_DETAILS = &quot;details&quot;
</span></span></pre></div>
<a id="CalDAVTestertrunkverifiersxmlElementMatchpy"></a>
<div class="modfile"><h4>Modified: CalDAVTester/trunk/verifiers/xmlElementMatch.py (11893 => 11894)</h4>
<pre class="diff"><span>
<span class="info">--- CalDAVTester/trunk/verifiers/xmlElementMatch.py        2013-11-06 22:17:27 UTC (rev 11893)
+++ CalDAVTester/trunk/verifiers/xmlElementMatch.py        2013-11-06 22:19:12 UTC (rev 11894)
</span><span class="lines">@@ -141,6 +141,9 @@
</span><span class="cx">                         for child in node.getchildren():
</span><span class="cx">                             if child.tag == element and (value is None or child.text == value):
</span><span class="cx">                                 results.append(node)
</span><ins>+                    elif test[0] == '|':
+                        if node.text is None and len(node.getchildren()) == 0:
+                            results.append(node)
</ins><span class="cx">         else:
</span><span class="cx">             results = nodes
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>