diff options
Diffstat (limited to 'test/scripts/tests')
-rw-r--r-- | test/scripts/tests/CalDAV/caldavIOP.xml | 360 | ||||
-rw-r--r-- | test/scripts/tests/CalDAV/ctag.xml | 802 | ||||
-rw-r--r-- | test/scripts/tests/CalDAV/current-user-principal.xml | 178 |
3 files changed, 1340 insertions, 0 deletions
diff --git a/test/scripts/tests/CalDAV/caldavIOP.xml b/test/scripts/tests/CalDAV/caldavIOP.xml new file mode 100644 index 0000000..0665bda --- /dev/null +++ b/test/scripts/tests/CalDAV/caldavIOP.xml @@ -0,0 +1,360 @@ +<?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> + + <require-feature> + <feature>caldav</feature> + </require-feature> + + <start/> + + <test-suite name='1. Event Creation'> + <test name='1.1'> + <description>Create new single-instance meeting titled "Meeting 1.1" with the location "Durham".</description> + <request end-delete='yes'> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/1/1_1.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='1.2'> + <description>Create new meeting titled "Meeting 1.2" recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks.</description> + <request end-delete='yes'> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_2.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/1/1_2.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='1.3'> + <description>Create new single-instance meeting titled "Meeting 1.3" with 2 other attendees.</description> + <request end-delete='yes'> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_3.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/1/1_3.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='1.4'> + <description>Create new single-instance meeting titled "Meeting 1.4" with an alarm set to trigger 15 minutes prior to the schedule time of the meeting.</description> + <request end-delete='yes'> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_4.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/1/1_4.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + </test-suite> + + <test-suite name='2. Event Modification'> + <test name='2.1'> + <description>Modify the title of meeting "Meeting 1.1" to "Meeting 1.1bis".</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_1.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='2.2'> + <description>Modify the location of the meeting "Meeting 1.1bis" to "Seattle bis".</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_2.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='2.3'> + <description>Reschedule meeting "Meeting 1.1bis" to the next day.</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_3.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='2.4'> + <description>Add an attendee to "Meeting 1.1bis".</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_4.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='2.5'> + <description>Add an alarm to "Meeting 1.1bis".</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_5.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='2.6'> + <description>Modify the title of the 1st instance of the recurring meeting created in 1.2.</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_2.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_6.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='2.7'> + <description>Modify the participation status of 1st instance to DECLINED.</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_3.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_7.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='2.8'> + <description>Cancel the 4th instance of the recurring meeting created in 1.2.</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_2.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_8.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='2.9'> + <description>One client changes "Meeting 1.1bis" to a different time, second client 'refreshes' its display to see the modification.</description> + <request end-delete='yes'> + <method>PUT</method> + <ruri>$calendarpath1:/1-1_1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/2/2_9.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + </test-suite> + + <test-suite name='4. Event Deletion'> + <test name='4.1'> + <description>Delete a single non-recurring meeting.</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/4-4_1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/4/4_1.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + <request> + <method>DELETE</method> + <ruri>$calendarpath1:/4-4_1.ics</ruri> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='4.2'> + <description>Delete a single recurring meeting with no overridden instances.</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/4-4_2.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/4/4_2.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + <request> + <method>DELETE</method> + <ruri>$calendarpath1:/4-4_2.ics</ruri> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='4.3'> + <description>Delete a single recurring meeting with overridden instances.</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/4-4_3.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/4/4_3.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + <request> + <method>DELETE</method> + <ruri>$calendarpath1:/4-4_3.ics</ruri> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='4.4'> + <description>Delete a non-overridden instance of a recurring meeting.</description> + <request end-delete='yes'> + <method>PUT</method> + <ruri>$calendarpath1:/4-4_4.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/4/4_4a.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/4-4_4.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/4/4_4b.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='4.5'> + <description>Delete an overridden instance of a recurring meeting.</description> + <request end-delete='yes'> + <method>PUT</method> + <ruri>$calendarpath1:/4-4_5.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/4/4_5a.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/4-4_5.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/caldaviop/4/4_5b.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + </test-suite> + + <end> + <request user="$userid1:" pswd="$pswd1:"> + <method>DELETEALL</method> + <ruri>$calendarpath1:/</ruri> + </request> + <request user="$userid1:" pswd="$pswd1:"> + <method>DELETEALL</method> + <ruri>$inboxpath1:/</ruri> + </request> + <request user="$userid2:" pswd="$pswd2:"> + <method>DELETEALL</method> + <ruri>$calendarpath2:/</ruri> + </request> + <request user="$userid2:" pswd="$pswd2:"> + <method>DELETEALL</method> + <ruri>$inboxpath2:/</ruri> + </request> + <request user="$userid3:" pswd="$pswd3:"> + <method>DELETEALL</method> + <ruri>$calendarpath3:/</ruri> + </request> + <request user="$userid3:" pswd="$pswd3:"> + <method>DELETEALL</method> + <ruri>$inboxpath3:/</ruri> + </request> + </end> + +</caldavtest> diff --git a/test/scripts/tests/CalDAV/ctag.xml b/test/scripts/tests/CalDAV/ctag.xml new file mode 100644 index 0000000..fbcb0ed --- /dev/null +++ b/test/scripts/tests/CalDAV/ctag.xml @@ -0,0 +1,802 @@ +<?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> + <description>Test the collection entity tag behavior on calendar collections</description> + + <require-feature> + <feature>caldav</feature> + <feature>ctag</feature> + </require-feature> + + <start> + <request end-delete="yes"> + <method>PUT</method> + <ruri>$calendarpath1:/1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/event/1.txt</filepath> + </data> + </request> + <request> + <method>MKCALENDAR</method> + <ruri>$calendarhome1:/movecopy/</ruri> + </request> + <request> + <method>PUT</method> + <ruri>$calendarhome1:/movecopy/2.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/event/2.txt</filepath> + </data> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarhome1:/movecopy/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag2:</variable> + </grabproperty> + </request> + </start> + + <test-suite name='PUT/DELETE/COPY/MOVE' ignore='no'> + <test name='1'> + <description>Check for CTag</description> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + </test> + <test name='2'> + <description>Check for CTag</description> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag$$getctag1:</value> + </arg> + </verify> + </request> + </test> + <test name='3'> + <description>Check for CTag change on DELETE</description> + <request> + <method>DELETE</method> + <ruri>$calendarpath1:/1.ics</ruri> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag1:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + </test> + <test name='4'> + <description>Check for CTag change on PUT of new resource</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/event/1.txt</filepath> + </data> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag1:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + </test> + <test name='5'> + <description>Check for CTag change on PUT of existing resource</description> + <request> + <method>PUT</method> + <ruri>$calendarpath1:/1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/event/1.txt</filepath> + </data> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag1:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + </test> + <test name='6'> + <require-feature> + <feature>MOVE Method</feature> + </require-feature> + <description>Check for CTag change on MOVE of new resource</description> + <request> + <method>MOVE</method> + <ruri>$calendarpath1:/1.ics</ruri> + <header> + <name>Destination</name> + <value>$host:$calendarhome1:/movecopy/1.ics</value> + </header> + <verify> + <callback>statusCode</callback> + </verify> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag1:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarhome1:/movecopy/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag2:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag2:</variable> + </grabproperty> + </request> + </test> + <test name='7'> + <require-feature> + <feature>COPY Method</feature> + </require-feature> + <exclude-feature> + <feature>no-duplicate-uids</feature> + </exclude-feature> + <description>Check for CTag change on COPY of new resource</description> + <request> + <method>COPY</method> + <ruri>$calendarhome1:/movecopy/2.ics</ruri> + <header> + <name>Destination</name> + <value>$host:$calendarpath1:/2.ics</value> + </header> + <verify> + <callback>statusCode</callback> + </verify> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag1:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarhome1:/movecopy/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag$$getctag2:</value> + </arg> + </verify> + </request> + </test> + <test name='8'> + <require-feature> + <feature>COPY Method</feature> + </require-feature> + <exclude-feature> + <feature>no-duplicate-uids</feature> + </exclude-feature> + <description>Check for CTag change on COPY of existing resource</description> + <request> + <method>COPY</method> + <ruri>$calendarhome1:/movecopy/2.ics</ruri> + <header> + <name>Destination</name> + <value>$host:$calendarpath1:/2.ics</value> + </header> + <verify> + <callback>statusCode</callback> + </verify> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag1:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarhome1:/movecopy/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag$$getctag2:</value> + </arg> + </verify> + </request> + </test> + <!-- TODO: kolab_storage_cache::uid2msguid() returns false resutls after copy (multiple messages for one UID exist) --> + <test name='9' ignore='yes'> + <require-feature> + <feature>MOVE Method</feature> + </require-feature> + <exclude-feature> + <feature>no-duplicate-uids</feature> + </exclude-feature> + <description>Check for no CTag change on failed MOVE of existing resource</description> + <request> + <method>MOVE</method> + <ruri>$calendarpath1:/1.ics</ruri> + <header> + <name>Destination</name> + <value>$host:$calendarhome1:/movecopy/2.ics</value> + </header> + <verify> + <callback>statusCode</callback> + <arg> + <name>status</name> + <value>404</value> + </arg> + </verify> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag$$getctag1:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + <request> + <method>PROPFIND</method> + <ruri>$calendarhome1:/movecopy/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag$$getctag2:</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag2:</variable> + </grabproperty> + </request> + </test> + </test-suite> + + <!-- TODO: enable these tests once scheduling is implemented --> + <test-suite name='Scheduling' ignore='no'> + <require-feature> + <feature>schedule-inbox</feature> + </require-feature> + + <test name='1'> + <description>Check for CTag on calendar</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag3:</variable> + </grabproperty> + </request> + </test> + <test name='2'> + <description>Check for CTag on inbox</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$inboxpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag4:</variable> + </grabproperty> + </request> + </test> + <test name='3'> + <description>PUT invite</description> + <request user="$userid2:" pswd="$pswd2:" print-response='no'> + <method>PUT</method> + <ruri>$calendarpath2:/2.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/2.ics</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name="4"> + <description>Test calendar ctag change</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag3:</value> + </arg> + </verify> + </request> + </test> + <test name="5"> + <require-feature> + <feature>schedule-ext</feature> + </require-feature> + <description>Test inbox ctag change</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$inboxpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag!$getctag4:</value> + </arg> + </verify> + </request> + </test> + </test-suite> + + <test-suite name='Same for each Depth' ignore='no'> + <test name='1'> + <description>Check for CTag Depth:0</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + </test> + <test name='2'> + <description>Check for CTag Depth:1</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$calendarhome1:/</ruri> + <header> + <name>Depth</name> + <value>1</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>only</name> + <value>$calendarpath1:/</value> + </arg> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag$$getctag1:</value> + </arg> + </verify> + </request> + </test> + <test name='3'> + <description>Add/update resource</description> + <request end-delete="yes"> + <method>PUT</method> + <ruri>$calendarpath1:/1.ics</ruri> + <data> + <content-type>text/calendar; charset=utf-8</content-type> + <filepath>Resource/CalDAV/event/1.txt</filepath> + </data> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='4'> + <description>Check for CTag Depth:0</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + </test> + <test name='5'> + <description>Check for CTag Depth:1</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$calendarhome1:/</ruri> + <header> + <name>Depth</name> + <value>1</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>only</name> + <value>$calendarpath1:/</value> + </arg> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag$$getctag1:</value> + </arg> + </verify> + </request> + </test> + <test name='6'> + <description>Delete resource</description> + <request> + <method>DELETE</method> + <ruri>$calendarpath1:/1.ics</ruri> + <verify> + <callback>statusCode</callback> + </verify> + </request> + </test> + <test name='7'> + <description>Check for CTag Depth:0</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$calendarpath1:/</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag</value> + </arg> + </verify> + <grabproperty> + <property>{http://calendarserver.org/ns/}getctag</property> + <variable>$getctag1:</variable> + </grabproperty> + </request> + </test> + <test name='8'> + <description>Check for CTag Depth:1</description> + <request print-response='no'> + <method>PROPFIND</method> + <ruri>$calendarhome1:/</ruri> + <header> + <name>Depth</name> + <value>1</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/ctag/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>only</name> + <value>$calendarpath1:/</value> + </arg> + <arg> + <name>okprops</name> + <value>{http://calendarserver.org/ns/}getctag$$getctag1:</value> + </arg> + </verify> + </request> + </test> + </test-suite> + + <end> + <request> + <method>DELETEALL</method> + <ruri>$calendarpath1:/</ruri> + </request> + <request user="$userid2:" pswd="$pswd2:"> + <method>DELETEALL</method> + <ruri>$calendarpath2:/</ruri> + </request> + <request> + <method>DELETEALL</method> + <ruri>$inboxpath1:/</ruri> + </request> + <request user="$userid2:" pswd="$pswd2:"> + <method>DELETEALL</method> + <ruri>$inboxpath2:/</ruri> + </request> + <request> + <method>DELETE</method> + <ruri>$calendarhome1:/movecopy/</ruri> + </request> + </end> + +</caldavtest> diff --git a/test/scripts/tests/CalDAV/current-user-principal.xml b/test/scripts/tests/CalDAV/current-user-principal.xml new file mode 100644 index 0000000..4324903 --- /dev/null +++ b/test/scripts/tests/CalDAV/current-user-principal.xml @@ -0,0 +1,178 @@ +<?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> + <description>Test DAV:current-user-principal support</description> + + <require-feature> + <feature>caldav</feature> + <feature>current-user-principal</feature> + </require-feature> + + <start/> + + <test-suite name='Check for the property on /' ignore='no'> + <test name='1' ignore='no'> + <description>Check for authenticated property on /</description> + <request> + <method>PROPFIND</method> + <ruri>$root:</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/current-user-principal/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value><![CDATA[{DAV:}current-user-principal$<href xmlns="DAV:">$principaluri1:</href>]]></value> + </arg> + </verify> + </request> + </test> + <test name='2' ignore='no'> + <description>Check for unauthenticated property on /</description> + <request auth="no"> + <method>PROPFIND</method> + <ruri>$root:</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/current-user-principal/1.xml</filepath> + </data> + <verify> + <callback>statusCode</callback> + <arg> + <name>status</name> + <value>401</value> + </arg> + </verify> +<!-- <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value><![CDATA[{DAV:}current-user-principal$<unauthenticated xmlns="DAV:"/>]]></value> + </arg> + </verify> +--> + </request> + </test> + <test name='3' ignore='no'> + <description>Check for authenticated property on / (user02)</description> + <request user="$userid2:" pswd="$pswd2:"> + <method>PROPFIND</method> + <ruri>$root:</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/current-user-principal/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value><![CDATA[{DAV:}current-user-principal$<href xmlns="DAV:">$principaluri2:</href>]]></value> + </arg> + </verify> + </request> + </test> + </test-suite> + + <test-suite name='Check for the property on /principals/' ignore='no'> + <test name='1' ignore='no'> + <description>Check for authenticated property on /</description> + <request> + <method>PROPFIND</method> + <ruri>$principalcollection:</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/current-user-principal/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value><![CDATA[{DAV:}current-user-principal$<href xmlns="DAV:">$principaluri1:</href>]]></value> + </arg> + </verify> + </request> + </test> + <test name='2' ignore='no'> + <description>Check for unauthenticated property on /</description> + <request auth="no"> + <method>PROPFIND</method> + <ruri>$principalcollection:</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/current-user-principal/1.xml</filepath> + </data> + <verify> + <callback>statusCode</callback> + <arg> + <name>status</name> + <value>401</value> + </arg> + </verify> + </request> + </test> + <test name='3' ignore='no'> + <description>Check for authenticated property on / (user02)</description> + <request user="$userid2:" pswd="$pswd2:"> + <method>PROPFIND</method> + <ruri>$principalcollection:</ruri> + <header> + <name>Depth</name> + <value>0</value> + </header> + <data> + <content-type>text/xml; charset=utf-8</content-type> + <filepath>Resource/CalDAV/current-user-principal/1.xml</filepath> + </data> + <verify> + <callback>propfindItems</callback> + <arg> + <name>okprops</name> + <value><![CDATA[{DAV:}current-user-principal$<href xmlns="DAV:">$principaluri2:</href>]]></value> + </arg> + </verify> + </request> + </test> + </test-suite> + + <end/> +</caldavtest> |