parent
1594371c8c
commit
d1104954aa
@ -0,0 +1,573 @@ |
||||
<?xml version="1.0" standalone="no"?> |
||||
|
||||
<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd"> |
||||
|
||||
<!-- |
||||
Copyright (c) 2006-2015 Apple Inc. All rights reserved. |
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); |
||||
you may not use this file except in compliance with the License. |
||||
You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
--> |
||||
|
||||
<caldavtest> |
||||
<description>Test calendar sharing calendars</description> |
||||
|
||||
<require-feature> |
||||
<feature>caldav</feature> |
||||
<feature>shared-calendars</feature> |
||||
</require-feature> |
||||
|
||||
<start> |
||||
<request user="$userid1:" pswd="$pswd1:"> |
||||
<method>DELETEALL</method> |
||||
<ruri>$notificationpath1:/</ruri> |
||||
</request> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>DELETEALL</method> |
||||
<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> |
||||
</start> |
||||
|
||||
<test-suite name='Read-write calendar'> |
||||
<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/CalDAV/sharing/calendars/read-write/1.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='2'> |
||||
<description>Check Sharee notification collection</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>WAITCOUNT 1</method> |
||||
<ruri>$notificationpath2:/</ruri> |
||||
</request> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>GETNEW</method> |
||||
<ruri>$notificationpath2:/</ruri> |
||||
<verify> |
||||
<callback>xmlDataMatch</callback> |
||||
<arg> |
||||
<name>filepath</name> |
||||
<value>Resource/CalDAV/sharing/calendars/read-write/2.xml</value> |
||||
</arg> |
||||
<arg> |
||||
<name>filter</name> |
||||
<value>{http://calendarserver.org/ns/}dtstamp</value> |
||||
<value>{http://calendarserver.org/ns/}uid</value> |
||||
</arg> |
||||
</verify> |
||||
<grabelement> |
||||
<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name> |
||||
<variable>$inviteuid:</variable> |
||||
</grabelement> |
||||
</request> |
||||
</test> |
||||
<test name='3'> |
||||
<description>Sharee replies ACCEPTED</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>POST</method> |
||||
<ruri>$calendarhome2:/</ruri> |
||||
<data> |
||||
<content-type>application/xml; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-write/3.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
<grabelement> |
||||
<name>{DAV:}href</name> |
||||
<variable>$sharedcalendar:</variable> |
||||
</grabelement> |
||||
</request> |
||||
</test> |
||||
<test name='4'> |
||||
<description>Shared calendar exists</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PROPFIND</method> |
||||
<ruri>$sharedcalendar:/</ruri> |
||||
<header> |
||||
<name>Depth</name> |
||||
<value>0</value> |
||||
</header> |
||||
<data> |
||||
<content-type>text/xml; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-write/4.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>xmlElementMatch</callback> |
||||
<arg> |
||||
<name>exists</name> |
||||
<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value> |
||||
<value>$verify-property-prefix:/{DAV:}resourcetype/{DAV:}collection</value> |
||||
<value>$verify-property-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value> |
||||
<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value> |
||||
<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent</value> |
||||
</arg> |
||||
<arg> |
||||
<name>notexists</name> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='4a'> |
||||
<description>Shared calendar exists Depth:1</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PROPFIND</method> |
||||
<ruri>$calendarhome2:/</ruri> |
||||
<header> |
||||
<name>Depth</name> |
||||
<value>1</value> |
||||
</header> |
||||
<data> |
||||
<content-type>text/xml; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-write/4.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>xmlElementMatch</callback> |
||||
<arg> |
||||
<name>parent</name> |
||||
<value>$multistatus-response-prefix:[^{DAV:}href=$sharedcalendar:/]</value> |
||||
</arg> |
||||
<arg> |
||||
<name>exists</name> |
||||
<value>$verify-response-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value> |
||||
<value>$verify-response-prefix:/{DAV:}resourcetype/{DAV:}collection</value> |
||||
<value>$verify-response-prefix:/{DAV:}resourcetype/{urn:ietf:params:xml:ns:caldav}calendar</value> |
||||
<value>$verify-response-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value> |
||||
<value>$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value> |
||||
<value>$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value> |
||||
<value>$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value> |
||||
<value>$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value> |
||||
<value>$verify-response-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}transparent</value> |
||||
</arg> |
||||
<arg> |
||||
<name>notexists</name> |
||||
<value>$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value> |
||||
<value>$verify-response-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='4b'> |
||||
<description>Shared calendar has invite property</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PROPFIND</method> |
||||
<ruri>$sharedcalendar:/</ruri> |
||||
<header> |
||||
<name>Depth</name> |
||||
<value>0</value> |
||||
</header> |
||||
<data> |
||||
<content-type>text/xml; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-write/5.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>propfindItems</callback> |
||||
<arg> |
||||
<name>okprops</name> |
||||
<value>{http://calendarserver.org/ns/}invite</value> |
||||
</arg> |
||||
</verify> |
||||
<verify> |
||||
<callback>xmlElementMatch</callback> |
||||
<arg> |
||||
<name>exists</name> |
||||
<value>$verify-property-prefix:/{http://calendarserver.org/ns/}invite</value> |
||||
<value>$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}organizer</value> |
||||
<value>$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}organizer/{DAV:}href[=$principaluri1:]</value> |
||||
<value>$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}organizer/{http://calendarserver.org/ns/}common-name[=$username1:]</value> |
||||
<value>$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}user</value> |
||||
<value>$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}user/{DAV:}href[=$cuaddrurn2:]</value> |
||||
<value>$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}user/{http://calendarserver.org/ns/}access/{http://calendarserver.org/ns/}read-write</value> |
||||
<value>$verify-property-prefix:/{http://calendarserver.org/ns/}invite/{http://calendarserver.org/ns/}user/{http://calendarserver.org/ns/}invite-accepted</value> |
||||
</arg> |
||||
</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/CalDAV/sharing/calendars/read-write/4.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>xmlElementMatch</callback> |
||||
<arg> |
||||
<name>exists</name> |
||||
<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value> |
||||
<value>$verify-property-prefix:/{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp/{urn:ietf:params:xml:ns:caldav}opaque</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='6'> |
||||
<description>Sharee creates event</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PUT</method> |
||||
<ruri>$sharedcalendar:/1.ics</ruri> |
||||
<data> |
||||
<content-type>text/calendar; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-write/5.ics</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='7'> |
||||
<description>Sharer sees event</description> |
||||
<request> |
||||
<method>GET</method> |
||||
<ruri>$calendarhome1:/shared/1.ics</ruri> |
||||
<verify> |
||||
<callback>calendarDataMatch</callback> |
||||
<arg> |
||||
<name>filepath</name> |
||||
<value>Resource/CalDAV/sharing/calendars/read-write/5.ics</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='8'> |
||||
<description>Sharer changes event</description> |
||||
<request> |
||||
<method>PUT</method> |
||||
<ruri>$calendarhome1:/shared/1.ics</ruri> |
||||
<data> |
||||
<content-type>text/calendar; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-write/6.ics</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='9'> |
||||
<description>Sharee sees changed event</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>GET</method> |
||||
<ruri>$sharedcalendar:/1.ics</ruri> |
||||
<verify> |
||||
<callback>calendarDataMatch</callback> |
||||
<arg> |
||||
<name>filepath</name> |
||||
<value>Resource/CalDAV/sharing/calendars/read-write/6.ics</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='10'> |
||||
<description>Sharer creates event</description> |
||||
<request> |
||||
<method>PUT</method> |
||||
<ruri>$calendarhome1:/shared/2.ics</ruri> |
||||
<data> |
||||
<content-type>text/calendar; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-write/7.ics</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='11'> |
||||
<description>Sharee sees new event</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>GET</method> |
||||
<ruri>$sharedcalendar:/2.ics</ruri> |
||||
<verify> |
||||
<callback>calendarDataMatch</callback> |
||||
<arg> |
||||
<name>filepath</name> |
||||
<value>Resource/CalDAV/sharing/calendars/read-write/7.ics</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='12'> |
||||
<description>Sharee changes event</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PUT</method> |
||||
<ruri>$sharedcalendar:/2.ics</ruri> |
||||
<data> |
||||
<content-type>text/calendar; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-write/8.ics</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='13'> |
||||
<description>Sharer sees changed event</description> |
||||
<request> |
||||
<method>GET</method> |
||||
<ruri>$calendarhome1:/shared/2.ics</ruri> |
||||
<verify> |
||||
<callback>calendarDataMatch</callback> |
||||
<arg> |
||||
<name>filepath</name> |
||||
<value>Resource/CalDAV/sharing/calendars/read-write/8.ics</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
</test-suite> |
||||
|
||||
<test-suite name='Default calendar cannot be shared calendar'> |
||||
<test name='1'> |
||||
<description>Set property on Inbox</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PROPPATCH</method> |
||||
<ruri>$inboxpath2:/</ruri> |
||||
<data> |
||||
<content-type>text/xml; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/defaultcalendar/1.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>propfindItems</callback> |
||||
<arg> |
||||
<name>badprops</name> |
||||
<value>{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='2'> |
||||
<description>Verify property on inbox</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PROPFIND</method> |
||||
<ruri>$inboxpath2:/</ruri> |
||||
<header> |
||||
<name>Depth</name> |
||||
<value>0</value> |
||||
</header> |
||||
<data> |
||||
<content-type>text/xml; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/defaultcalendar/2.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>propfindItems</callback> |
||||
<arg> |
||||
<name>okprops</name> |
||||
<value><![CDATA[{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL$<href xmlns="DAV:">$calendarpath2:</href>]]></value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
</test-suite> |
||||
|
||||
<test-suite name='Change to read-only calendar'> |
||||
<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/CalDAV/sharing/calendars/read-only/1.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='2'> |
||||
<description>Check Sharee notification collection</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>WAITCOUNT 1</method> |
||||
<ruri>$notificationpath2:/</ruri> |
||||
</request> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>GETNEW</method> |
||||
<ruri>$notificationpath2:/</ruri> |
||||
<verify> |
||||
<callback>xmlDataMatch</callback> |
||||
<arg> |
||||
<name>filepath</name> |
||||
<value>Resource/CalDAV/sharing/calendars/read-only/2.xml</value> |
||||
</arg> |
||||
<arg> |
||||
<name>filter</name> |
||||
<value>{http://calendarserver.org/ns/}dtstamp</value> |
||||
<value>{http://calendarserver.org/ns/}uid</value> |
||||
</arg> |
||||
</verify> |
||||
<grabelement> |
||||
<name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}uid</name> |
||||
<variable>$inviteuid:</variable> |
||||
</grabelement> |
||||
</request> |
||||
</test> |
||||
<test name='3'> |
||||
<description>Sharee replies ACCEPTED</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>POST</method> |
||||
<ruri>$calendarhome2:/</ruri> |
||||
<data> |
||||
<content-type>application/xml; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-only/3.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
<grabelement> |
||||
<name>{DAV:}href</name> |
||||
<variable>$sharedcalendar:</variable> |
||||
</grabelement> |
||||
</request> |
||||
</test> |
||||
<test name='4'> |
||||
<description>Shared calendar exists</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PROPFIND</method> |
||||
<ruri>$sharedcalendar:/</ruri> |
||||
<header> |
||||
<name>Depth</name> |
||||
<value>0</value> |
||||
</header> |
||||
<data> |
||||
<content-type>text/xml; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-only/4.xml</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>xmlElementMatch</callback> |
||||
<arg> |
||||
<name>exists</name> |
||||
<value>$verify-property-prefix:/{DAV:}owner/{DAV:}href[=$principaluri1:]</value> |
||||
<value>$verify-property-prefix:/{DAV:}resourcetype/{http://calendarserver.org/ns/}shared</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}read</value> |
||||
</arg> |
||||
<arg> |
||||
<name>notexists</name> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}write</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}bind</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}unbind</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}admin</value> |
||||
<value>$verify-property-prefix:/{DAV:}current-user-privilege-set/{DAV:}privilege/{DAV:}all</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='5'> |
||||
<description>Create event</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PUT</method> |
||||
<ruri>$sharedcalendar:/3.ics</ruri> |
||||
<data> |
||||
<content-type>text/calendar; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-only/5.ics</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
<arg> |
||||
<name>status</name> |
||||
<value>403</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='6'> |
||||
<description>Sharer creates event</description> |
||||
<request> |
||||
<method>PUT</method> |
||||
<ruri>$calendarhome1:/shared/4.ics</ruri> |
||||
<data> |
||||
<content-type>text/calendar; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-only/6.ics</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='7'> |
||||
<description>Sharee sees new event</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>GET</method> |
||||
<ruri>$sharedcalendar:/4.ics</ruri> |
||||
<verify> |
||||
<callback>calendarDataMatch</callback> |
||||
<arg> |
||||
<name>filepath</name> |
||||
<value>Resource/CalDAV/sharing/calendars/read-only/6.ics</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
<test name='8'> |
||||
<description>Sharee cannot change event</description> |
||||
<request user="$userid2:" pswd="$pswd2:"> |
||||
<method>PUT</method> |
||||
<ruri>$sharedcalendar:/4.ics</ruri> |
||||
<data> |
||||
<content-type>text/calendar; charset=utf-8</content-type> |
||||
<filepath>Resource/CalDAV/sharing/calendars/read-only/7.ics</filepath> |
||||
</data> |
||||
<verify> |
||||
<callback>statusCode</callback> |
||||
<arg> |
||||
<name>status</name> |
||||
<value>403</value> |
||||
</arg> |
||||
</verify> |
||||
</request> |
||||
</test> |
||||
</test-suite> |
||||
|
||||
<end> |
||||
<request user="$useradmin:" pswd="$pswdadmin:"> |
||||
<method>DELETEALL</method> |
||||
<ruri>$notificationpath1:/</ruri> |
||||
<ruri>$notificationpath2:/</ruri> |
||||
<ruri>$notificationpath3:/</ruri> |
||||
<ruri>$notificationpath4:/</ruri> |
||||
</request> |
||||
</end> |
||||
|
||||
</caldavtest> |
@ -0,0 +1,83 @@ |
||||
<?php |
||||
/** |
||||
* @author Thomas Müller <thomas.mueller@tmit.eu> |
||||
* |
||||
* @copyright Copyright (c) 2016, ownCloud, Inc. |
||||
* @license AGPL-3.0 |
||||
* |
||||
* This code is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License, version 3, |
||||
* as published by the Free Software Foundation. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License, version 3, |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/> |
||||
* |
||||
*/ |
||||
|
||||
namespace OCA\DAV\Tests\Unit\DAV; |
||||
|
||||
|
||||
use OCA\DAV\DAV\Sharing\IShareable; |
||||
use OCA\DAV\DAV\Sharing\Plugin; |
||||
use OCA\DAV\Connector\Sabre\Auth; |
||||
use OCP\IRequest; |
||||
use Sabre\DAV\Server; |
||||
use Sabre\DAV\SimpleCollection; |
||||
use Sabre\HTTP\Request; |
||||
use Sabre\HTTP\Response; |
||||
use Test\TestCase; |
||||
|
||||
class PluginTest extends TestCase { |
||||
|
||||
/** @var Plugin */ |
||||
private $plugin; |
||||
/** @var Server */ |
||||
private $server; |
||||
/** @var IShareable | \PHPUnit_Framework_MockObject_MockObject */ |
||||
private $book; |
||||
|
||||
public function setUp() { |
||||
parent::setUp(); |
||||
|
||||
/** @var Auth | \PHPUnit_Framework_MockObject_MockObject $authBackend */ |
||||
$authBackend = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Auth')->disableOriginalConstructor()->getMock(); |
||||
$authBackend->method('isDavAuthenticated')->willReturn(true); |
||||
|
||||
/** @var IRequest $request */ |
||||
$request = $this->getMockBuilder('OCP\IRequest')->disableOriginalConstructor()->getMock(); |
||||
$this->plugin = new Plugin($authBackend, $request); |
||||
|
||||
$root = new SimpleCollection('root'); |
||||
$this->server = new \Sabre\DAV\Server($root); |
||||
/** @var SimpleCollection $node */ |
||||
$this->book = $this->getMockBuilder('OCA\DAV\DAV\Sharing\IShareable')-> |
||||
disableOriginalConstructor()-> |
||||
getMock(); |
||||
$this->book->method('getName')->willReturn('addressbook1.vcf'); |
||||
$root->addChild($this->book); |
||||
$this->plugin->initialize($this->server); |
||||
} |
||||
|
||||
public function testSharing() { |
||||
|
||||
$this->book->expects($this->once())->method('updateShares')->with([[ |
||||
'href' => 'principal:principals/admin', |
||||
'commonName' => null, |
||||
'summary' => null, |
||||
'readOnly' => false |
||||
]], ['mailto:wilfredo@example.com']); |
||||
|
||||
// setup request |
||||
$request = new Request(); |
||||
$request->addHeader('Content-Type', 'application/xml'); |
||||
$request->setUrl('addressbook1.vcf'); |
||||
$request->setBody('<?xml version="1.0" encoding="utf-8" ?><CS:share xmlns:D="DAV:" xmlns:CS="http://owncloud.org/ns"><CS:set><D:href>principal:principals/admin</D:href><CS:read-write/></CS:set> <CS:remove><D:href>mailto:wilfredo@example.com</D:href></CS:remove></CS:share>');
|
||||
$response = new Response(); |
||||
$this->plugin->httpPost($request, $response); |
||||
} |
||||
} |
Loading…
Reference in new issue