[CalendarServer-changes] [14021] CalDAVTester/trunk

source_changes at macosforge.org source_changes at macosforge.org
Tue Sep 30 01:05:21 PDT 2014


Revision: 14021
          http://trac.calendarserver.org//changeset/14021
Author:   cdaboo at apple.com
Date:     2014-09-30 01:05:21 -0700 (Tue, 30 Sep 2014)
Log Message:
-----------
More complex tests of changes to shared groups.

Added Paths:
-----------
    CalDAVTester/trunk/Resource/Common/POST/sharing-invite1-ro.xml
    CalDAVTester/trunk/scripts/tests/CalDAV/sharing-groups-changes.xml

Added: CalDAVTester/trunk/Resource/Common/POST/sharing-invite1-ro.xml
===================================================================
--- CalDAVTester/trunk/Resource/Common/POST/sharing-invite1-ro.xml	                        (rev 0)
+++ CalDAVTester/trunk/Resource/Common/POST/sharing-invite1-ro.xml	2014-09-30 08:05:21 UTC (rev 14021)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<CS:share xmlns:D="DAV:" xmlns:CS="http://calendarserver.org/ns/">
+    <CS:set>
+        <D:href>$sharee:</D:href>
+        <CS:summary>My Shared Calendar</CS:summary>
+        <CS:read/>
+    </CS:set>
+</CS:share>

Added: CalDAVTester/trunk/scripts/tests/CalDAV/sharing-groups-changes.xml
===================================================================
--- CalDAVTester/trunk/scripts/tests/CalDAV/sharing-groups-changes.xml	                        (rev 0)
+++ CalDAVTester/trunk/scripts/tests/CalDAV/sharing-groups-changes.xml	2014-09-30 08:05:21 UTC (rev 14021)
@@ -0,0 +1,713 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 2006-2013 Apple Inc. All rights reserved.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<caldavtest ignore-all="yes">
+	<description>Test calendar sharing to groups which change</description>
+
+	<require-feature>
+		<feature>caldav</feature>
+		<feature>shared-calendars</feature>
+		<feature>share-calendars-to-groups</feature>
+	</require-feature>
+
+	<start>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>$notificationpath1:/</ruri>
+			<ruri>$notificationpath2:/</ruri>
+		</request>
+		<request end-delete="yes">
+			<method>MKCALENDAR</method>
+			<ruri>$calendarhome1:/shared/</ruri>
+			<verify>
+				<callback>statusCode</callback>
+			</verify>
+		</request>
+		<request>
+			<method>PROPPATCH</method>
+			<ruri>$calendarhome1:/shared/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/Common/PROPPATCH/calendar-transp-opaque.xml</filepath>
+			</data>
+		</request>
+		<request end-delete="yes">
+			<method>MKCALENDAR</method>
+			<ruri>$calendarhome1:/shared2/</ruri>
+			<verify>
+				<callback>statusCode</callback>
+			</verify>
+		</request>
+		<request>
+			<method>PROPPATCH</method>
+			<ruri>$calendarhome1:/shared2/</ruri>
+			<data>
+				<content-type>text/xml; charset=utf-8</content-type>
+				<filepath>Resource/Common/PROPPATCH/calendar-transp-opaque.xml</filepath>
+			</data>
+		</request>
+	</start>
+	
+	<test-suite name='Share calendar to empty group read-write'>
+		<test name='1'>
+			<description>POST invitation</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharing-invite1-ro.xml</filepath>
+					<substitute>
+						<name>$sharee:</name>
+						<value>$gcuaddrurn20:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>Original calendar unchanged</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Add group member</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controladdmember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid20:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlgrouprefresh.json</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Original calendar unchanged</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Remove group member</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlremovemember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid20:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlgrouprefresh.json</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Original calendar unchanged</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+
+	<test-suite name='Share calendar to two groups with same member'>
+		<test name='1'>
+			<description>Add group members</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controladdmember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid20:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controladdmember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid21:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlgrouprefresh.json</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST invitations</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharing-invite1-ro.xml</filepath>
+					<substitute>
+						<name>$sharee:</name>
+						<value>$gcuaddrurn20:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharing-invite1.xml</filepath>
+					<substitute>
+						<name>$sharee:</name>
+						<value>$gcuaddrurn21:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Original calendar changed</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]/../{$CS:}access/{$CS:}read</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]/../{$CS:}access/{$CS:}read-write</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]/../{$CS:}access/{$CS:}read-write</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Remove group member</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlremovemember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid21:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlgrouprefresh.json</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Original calendar unchanged</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]/../{$CS:}access/{$CS:}read</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]/../{$CS:}access/{$CS:}read-write</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]/../{$CS:}access/{$CS:}read</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Remove group member</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlremovemember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid20:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlgrouprefresh.json</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+		
+
+	<test-suite name='Share two calendars to two groups with same member'>
+		<test name='1'>
+			<description>Add group members</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controladdmember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid20:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controladdmember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid21:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlgrouprefresh.json</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='2'>
+			<description>POST invitations</description>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharing-invite1-ro.xml</filepath>
+					<substitute>
+						<name>$sharee:</name>
+						<value>$gcuaddrurn20:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request>
+				<method>POST</method>
+				<ruri>$calendarhome1:/shared2/</ruri>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/sharing-invite1.xml</filepath>
+					<substitute>
+						<name>$sharee:</name>
+						<value>$gcuaddrurn21:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='3'>
+			<description>Original calendars changed</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]/../{$CS:}access/{$CS:}read</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]/../{$CS:}access/{$CS:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]</value>
+					</arg>
+				</verify>
+			</request>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared2/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]/../{$CS:}access/{$CS:}read-write</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]/../{$CS:}access/{$CS:}read-write</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='4'>
+			<description>Remove group member</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlremovemember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid21:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlgrouprefresh.json</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+		<test name='5'>
+			<description>Calendar unchanged</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]/../{$CS:}access/{$CS:}read</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]/../{$CS:}access/{$CS:}read</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='6'>
+			<description>Calendar changed</description>
+			<request>
+				<method>PROPFIND</method>
+				<ruri>$calendarhome1:/shared/</ruri>
+				<header>
+					<name>Depth</name>
+					<value>0</value>
+				</header>
+				<data>
+					<content-type>text/xml; charset=utf-8</content-type>
+					<filepath>Resource/Common/PROPFIND/invite.xml</filepath>
+				</data>
+				<verify>
+					<callback>xmlElementMatch</callback>
+					<arg>
+						<name>exists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn21:]/../{$CS:}access/{$CS:}read-write</value>
+					</arg>
+					<arg>
+						<name>notexists</name>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$gcuaddrurn20:]</value>
+						<value>$verify-property-prefix:/{$CS:}invite/{$CS:}user/{DAV:}href[=$cuaddrurn2:]</value>
+					</arg>
+				</verify>
+			</request>
+		</test>
+		<test name='7'>
+			<description>Remove group member</description>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlremovemember.json</filepath>
+					<substitute>
+						<name>$controlgroup:</name>
+						<value>$groupguid20:</value>
+					</substitute>
+					<substitute>
+						<name>$controlmember:</name>
+						<value>$userguid2:</value>
+					</substitute>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+			<request user="$useradmin:" pswd="$pswdadmin:">
+				<method>POST</method>
+				<ruri>/control</ruri>
+				<data>
+					<content-type>application/json; charset=utf-8</content-type>
+					<filepath>Resource/Common/POST/controlgrouprefresh.json</filepath>
+				</data>
+				<verify>
+					<callback>statusCode</callback>
+				</verify>
+			</request>
+		</test>
+	</test-suite>
+		
+	<end>
+		<request user="$useradmin:" pswd="$pswdadmin:">
+			<method>DELETEALL</method>
+			<ruri>$notificationpath1:/</ruri>
+			<ruri>$notificationpath2:/</ruri>
+		</request>
+	</end>
+	
+</caldavtest>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140930/0a5c3ac5/attachment-0001.html>


More information about the calendarserver-changes mailing list