[CalendarServer-changes] [11782] CalDAVTester/branches/users/gaya/sharedgroupfixestester
source_changes at macosforge.org
source_changes at macosforge.org
Thu Oct 3 12:47:20 PDT 2013
Revision: 11782
http://trac.calendarserver.org//changeset/11782
Author: gaya at apple.com
Date: 2013-10-03 12:47:20 -0700 (Thu, 03 Oct 2013)
Log Message:
-----------
merge in r11744 through r11780
Revision Links:
--------------
http://trac.calendarserver.org//changeset/11744
http://trac.calendarserver.org//changeset/11780
Modified Paths:
--------------
CalDAVTester/branches/users/gaya/sharedgroupfixestester/README.txt
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo-partitioning.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo-template.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/caldavtest.dtd
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/current-user-principal.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/managed-attachments.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/prefer.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/sharing-sync.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/sync-report.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/caldavtest.dtd
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/sharing-groups.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/sharing-sync.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/caldavtest.py
CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/manager.py
CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/request.py
CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/xmlDefs.py
CalDAVTester/branches/users/gaya/sharedgroupfixestester/verifiers/calendarDataMatch.py
Added Paths:
-----------
CalDAVTester/branches/users/gaya/sharedgroupfixestester/Resource/CalDAV/bad-ical/
CalDAVTester/branches/users/gaya/sharedgroupfixestester/Resource/CalDAV/bad-json/
CalDAVTester/branches/users/gaya/sharedgroupfixestester/Resource/CalDAV/reports/sync/21.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/Resource/CalDAV/vtodos/
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/bad-ical.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/bad-json.xml
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/vtodos.xml
Property Changed:
----------------
CalDAVTester/branches/users/gaya/sharedgroupfixestester/
CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/
Property changes on: CalDAVTester/branches/users/gaya/sharedgroupfixestester
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev:7584
/CalDAVTester/branches/release/CalDAVTester-4.3-dev:10193
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes:8221-8346
/CalDAVTester/branches/users/cdaboo/conditional-4466:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574:3575-3581
/CalDAVTester/branches/users/cdaboo/managed-attachments:9986-10145
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228:5229-5440
/CalDAVTester/branches/users/gaya/sharedgroupstester-3:11181-11204
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev:7584
/CalDAVTester/branches/release/CalDAVTester-4.3-dev:10193
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes:8221-8346
/CalDAVTester/branches/users/cdaboo/conditional-4466:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574:3575-3581
/CalDAVTester/branches/users/cdaboo/managed-attachments:9986-10145
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228:5229-5440
/CalDAVTester/branches/users/gaya/sharedgroupstester-3:11181-11204
/CalDAVTester/trunk:11744-11780
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/README.txt
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/README.txt 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/README.txt 2013-10-03 19:47:20 UTC (rev 11782)
@@ -12,12 +12,25 @@
COMMAND LINE OPTIONS
-testcaldav.py [-s filename] [-p filename] [-d] [--ssl] [--all] [--random] \
+testcaldav.py \
+ [-s filename] \
+ [-x dirpath] \
+ [--ssl] \
+ [--all] \
+ [--random] \
+ [--random-seed SEED] \
+ [--print-details-onfail] \
+ [--always-print-request] \
+ [--always-print-response] \
+ [--exclude filename] \
file1 file2 ...
-s : filename specifies the file to use for server information
(default is 'serverinfo.xml').
+ -x : directory path for test scripts
+ (default is 'scripts/tests').
+
-p : filename specifies the file to use to populate the server with
data. Server data population only occurs when this option is
present.
@@ -32,6 +45,16 @@
caldavtest.dtd are executed.
--random : randomize the order in which the tests are run.
+
+ --random-seed SEED : a specific randon seed to use.
+
+ --print-details-onfail : print HTTP request/response when a test fails.
+
+ --always-print-request : always print HTTP request.
+
+ --always-print-response : always print HTTP response.
+
+ --exclude FILE : when running with --all, exclude the file from the test run.
file1 file2 ...: a list of test files to execute tests from.
Copied: CalDAVTester/branches/users/gaya/sharedgroupfixestester/Resource/CalDAV/reports/sync/21.xml (from rev 11780, CalDAVTester/trunk/Resource/CalDAV/reports/sync/21.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/Resource/CalDAV/reports/sync/21.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/Resource/CalDAV/reports/sync/21.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:sync-collection xmlns:D="DAV:">
+<D:sync-token/>
+<D:sync-level>0</D:sync-level>
+<D:limit><D:nresults>10</D:nresults></D:limit>
+</D:sync-collection>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo-partitioning.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo-partitioning.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo-partitioning.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -38,6 +38,7 @@
<feature>principal-search-property-set REPORT</feature> <!-- ACL principal-search-property-set REPORT -->
<feature>add-member</feature> <!-- Add-member used to create resources -->
+ <!-- <feature>auth-on-root</feature> --> <!-- Whether the server requires authentication on the root URI -->
<feature>brief</feature> <!-- Brief header for PROPFIND, REPORT -->
<feature>bulk-post</feature> <!-- Bulk POST requests -->
<feature>ctag</feature> <!-- ctag extension -->
@@ -55,6 +56,7 @@
<!-- <feature>quota-on-resources</feature> --> <!-- WebDAV QUOTA on calendar and address book object resources -->
<feature>resource-id</feature> <!-- WebDAV BIND DAV:resource-id property -->
<feature>sync-report</feature> <!-- WebDAV collection sync REPORT -->
+ <!-- <feature>sync-report-limit</feature> --> <!-- WebDAV collection sync REPORT DAV:limit support -->
<feature>sync-report-home</feature> <!-- WebDAV collection sync REPORT on Homes -->
<feature>well-known</feature> <!-- well-known feature -->
@@ -65,6 +67,7 @@
<!-- CalDAV specific extension -->
<feature>caldav</feature> <!-- Basic CalDAV feature enabler -->
+ <feature>attachments-collection</feature> <!-- Server uses a collection in same WebDAV tree to store attachments -->
<feature>auto-accept</feature> <!-- Auto-accept for rooms & locations -->
<feature>auto-accept-modes</feature> <!-- Auto-accept modes -->
<!-- <feature>dropbox</feature> --> <!-- dropbox extension -->
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo-template.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo-template.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo-template.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -38,6 +38,7 @@
<feature>principal-search-property-set REPORT</feature> <!-- ACL principal-search-property-set REPORT -->
<feature>add-member</feature> <!-- Add-member used to create resources -->
+ <!-- <feature>auth-on-root</feature> --> <!-- Whether the server requires authentication on the root URI -->
<feature>brief</feature> <!-- Brief header for PROPFIND, REPORT -->
<feature>bulk-post</feature> <!-- Bulk POST requests -->
<feature>ctag</feature> <!-- ctag extension -->
@@ -55,6 +56,7 @@
<!-- <feature>quota-on-resources</feature> --> <!-- WebDAV QUOTA on calendar and address book object resources -->
<feature>resource-id</feature> <!-- WebDAV BIND DAV:resource-id property -->
<feature>sync-report</feature> <!-- WebDAV collection sync REPORT -->
+ <!-- <feature>sync-report-limit</feature> --> <!-- WebDAV collection sync REPORT DAV:limit support -->
<feature>sync-report-home</feature> <!-- WebDAV collection sync REPORT on Homes -->
<feature>well-known</feature> <!-- well-known feature -->
@@ -65,6 +67,7 @@
<!-- CalDAV specific extension -->
<feature>caldav</feature> <!-- Basic CalDAV feature enabler -->
+ <feature>attachments-collection</feature> <!-- Server uses a collection in same WebDAV tree to store attachments -->
<feature>auto-accept</feature> <!-- Auto-accept for rooms & locations -->
<feature>auto-accept-modes</feature> <!-- Auto-accept modes -->
<!-- <feature>dropbox</feature> --> <!-- dropbox extension -->
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/server/serverinfo.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -38,6 +38,7 @@
<feature>principal-search-property-set REPORT</feature> <!-- ACL principal-search-property-set REPORT -->
<feature>add-member</feature> <!-- Add-member used to create resources -->
+ <!-- <feature>auth-on-root</feature> --> <!-- Whether the server requires authentication on the root URI -->
<feature>brief</feature> <!-- Brief header for PROPFIND, REPORT -->
<feature>bulk-post</feature> <!-- Bulk POST requests -->
<feature>ctag</feature> <!-- ctag extension -->
@@ -55,6 +56,7 @@
<!-- <feature>quota-on-resources</feature> --> <!-- WebDAV QUOTA on calendar and address book object resources -->
<feature>resource-id</feature> <!-- WebDAV BIND DAV:resource-id property -->
<feature>sync-report</feature> <!-- WebDAV collection sync REPORT -->
+ <!-- <feature>sync-report-limit</feature> --> <!-- WebDAV collection sync REPORT DAV:limit support -->
<feature>sync-report-home</feature> <!-- WebDAV collection sync REPORT on Homes -->
<feature>well-known</feature> <!-- well-known feature -->
@@ -65,6 +67,7 @@
<!-- CalDAV specific extension -->
<feature>caldav</feature> <!-- Basic CalDAV feature enabler -->
+ <feature>attachments-collection</feature> <!-- Server uses a collection in same WebDAV tree to store attachments -->
<feature>auto-accept</feature> <!-- Auto-accept for rooms & locations -->
<feature>auto-accept-modes</feature> <!-- Auto-accept modes -->
<!--<feature>dropbox</feature> --> <!-- dropbox extension -->
Copied: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/bad-ical.xml (from rev 11780, CalDAVTester/trunk/scripts/tests/CalDAV/bad-ical.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/bad-ical.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/bad-ical.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -0,0 +1,52 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 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>Tests a bunch of bad data</description>
+
+ <require-feature>
+ <feature>caldav</feature>
+ </require-feature>
+
+ <start/>
+
+ <test-suite name='PUT'>
+ <test name='1'>
+ <description>PUT bad calendar data</description>
+ <request iterate-data="yes">
+ <method>PUT</method>
+ <ruri>$calendarpath1:/**</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/bad-ical</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>4xx</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+ <end/>
+
+</caldavtest>
Copied: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/bad-json.xml (from rev 11780, CalDAVTester/trunk/scripts/tests/CalDAV/bad-json.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/bad-json.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/bad-json.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -0,0 +1,53 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 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>Tests a bunch of bad data</description>
+
+ <require-feature>
+ <feature>caldav</feature>
+ <feature>json-data</feature>
+ </require-feature>
+
+ <start/>
+
+ <test-suite name='PUT'>
+ <test name='1'>
+ <description>PUT bad calendar data</description>
+ <request iterate-data="yes">
+ <method>PUT</method>
+ <ruri>$calendarpath1:/**</ruri>
+ <data>
+ <content-type>application/calendar+json; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/bad-json</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>4xx</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+ <end/>
+
+</caldavtest>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/caldavtest.dtd
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/caldavtest.dtd 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/caldavtest.dtd 2013-10-03 19:47:20 UTC (rev 11782)
@@ -35,7 +35,8 @@
user CDATA ""
pswd CDATA ""
end-delete (yes|no) "no"
- print-response (yes|no) "no">
+ print-response (yes|no) "no"
+ iterate-data (yes|no) "no">
<!ELEMENT method (#PCDATA)>
<!ELEMENT ruri (#PCDATA)>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/current-user-principal.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/current-user-principal.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/current-user-principal.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -65,12 +65,25 @@
<filepath>Resource/CalDAV/current-user-principal/1.xml</filepath>
</data>
<verify>
+ <exclude-feature>
+ <feature>auth-on-root</feature>
+ </exclude-feature>
<callback>propfindItems</callback>
<arg>
<name>okprops</name>
<value><![CDATA[{DAV:}current-user-principal$<unauthenticated xmlns="DAV:"/>]]></value>
</arg>
</verify>
+ <verify>
+ <require-feature>
+ <feature>auth-on-root</feature>
+ </require-feature>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>401</value>
+ </arg>
+ </verify>
</request>
</test>
<test name='3' ignore='no'>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/managed-attachments.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/managed-attachments.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/managed-attachments.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -61,6 +61,9 @@
</test-suite>
<test-suite name="Privileges on Attachments Collection">
+ <require-feature>
+ <feature>attachments-collection</feature>
+ </require-feature>
<test name='1' ignore='no'>
<description>Check for schedule privilege on iTIP Inbox</description>
<request print-response='no'>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/prefer.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/prefer.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/prefer.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -637,6 +637,43 @@
</verify>
</request>
</test>
+ <test name='5'>
+ <description>PUT with Prefer=return=representation pre-condition fail</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$calendarpath1:/4.ics</ruri>
+ <header>
+ <name>Prefer</name>
+ <value>return=representation</value>
+ </header>
+ <header>
+ <name>If-Match</name>
+ <value>1234</value>
+ </header>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/prefer/return/5.ics</filepath>
+ </data>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/prefer/return/5.ics</value>
+ </arg>
+ <arg>
+ <name>status</name>
+ <value>412</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>header</callback>
+ <arg>
+ <name>content-location</name>
+ <value>$calendarpath1:/4.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
</test-suite>
<test-suite name='representation schedule PUT'>
@@ -769,6 +806,43 @@
</verify>
</request>
</test>
+ <test name='5'>
+ <description>PUT with Prefer=return=representation If-Schedule-Tag-Match failure</description>
+ <request>
+ <method>PUT</method>
+ <ruri>$calendarpath1:/7.ics</ruri>
+ <header>
+ <name>Prefer</name>
+ <value>return=representation</value>
+ </header>
+ <header>
+ <name>If-Schedule-Tag-Match</name>
+ <value>1234</value>
+ </header>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/prefer/return/10.ics</filepath>
+ </data>
+ <verify>
+ <callback>calendarDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/prefer/return/11.ics</value>
+ </arg>
+ <arg>
+ <name>status</name>
+ <value>412</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>header</callback>
+ <arg>
+ <name>content-location</name>
+ <value>$calendarpath1:/4.ics</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
</test-suite>
<test-suite name='representation POST add-member'>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/sharing-sync.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/sharing-sync.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/sharing-sync.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -862,6 +862,941 @@
</test>
</test-suite>
+
+ <test-suite name='calendar webdav property change - home depth:infinity' ignore='no'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <test name='1' ignore='no'>
+ <description>POST invitation and accept</description>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$notificationpath1:/</ruri>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharinginvite2.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>WAITCOUNT 1</method>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>GETNEW</method>
+ <ruri>$notificationpath2:/</ruri>
+ <verify>
+ <callback>xmlDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/sharing/sync/depth1-cache/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>$inviteuid2:</variable>
+ </grabelement>
+ <grabelement>
+ <name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href</name>
+ <variable>$hosturl2:</variable>
+ </grabelement>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome2:/</ruri>
+ <data substitutions='yes'>
+ <content-type>application/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharingreply2.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <grabelement>
+ <name>{DAV:}href</name>
+ <variable>basename($sharedcalendar:)</variable>
+ </grabelement>
+ </request>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$notificationpath1:/</ruri>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ </test>
+ <test name='2' ignore='no'>
+ <description>initial query - grab token</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-init-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>shared/</value>
+ </arg>
+ <arg>
+ <name>ignoremissing</name>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>initial query - grab token for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-init-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ <arg>
+ <name>ignoremissing</name>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='4' ignore='no'>
+ <description>Change a property by user 1</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='5' ignore='no'>
+ <description>Sync for user 1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token1-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>shared/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='6' ignore='no'>
+ <description>Sync for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token2-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='7' ignore='no'>
+ <description>Remove a property by user 1</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='8' ignore='no'>
+ <description>Sync for user 1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token1-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>shared/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='9' ignore='no'>
+ <description>Sync for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token2-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='10' ignore='no'>
+ <description>Change a property by user 2</description>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>PROPPATCH</method>
+ <ruri>$calendarhome2:/$sharedcalendar:/</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='11' ignore='no'>
+ <description>Sync for user 1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token1-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>shared/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='12' ignore='no'>
+ <description>Sync for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token2-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='13' ignore='no'>
+ <description>Remove a property by user 1</description>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>PROPPATCH</method>
+ <ruri>$calendarhome2:/$sharedcalendar:/</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='14' ignore='no'>
+ <description>Sync for user 1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token1-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>shared/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='15' ignore='no'>
+ <description>Sync for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token2-level-infinite.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='16'>
+ <description>Sharer unshares</description>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharingremove2.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='calendar webdav property change - home depth:1' ignore='no'>
+ <require-feature>
+ <feature>sync-report-home</feature>
+ </require-feature>
+ <test name='1' ignore='no'>
+ <description>POST invitation and accept</description>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$notificationpath1:/</ruri>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharinginvite2.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>WAITCOUNT 1</method>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>GETNEW</method>
+ <ruri>$notificationpath2:/</ruri>
+ <verify>
+ <callback>xmlDataMatch</callback>
+ <arg>
+ <name>filepath</name>
+ <value>Resource/CalDAV/sharing/sync/depth1-cache/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>$inviteuid2:</variable>
+ </grabelement>
+ <grabelement>
+ <name>{http://calendarserver.org/ns/}invite-notification/{http://calendarserver.org/ns/}hosturl/{DAV:}href</name>
+ <variable>$hosturl2:</variable>
+ </grabelement>
+ </request>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome2:/</ruri>
+ <data substitutions='yes'>
+ <content-type>application/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharingreply2.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ <grabelement>
+ <name>{DAV:}href</name>
+ <variable>basename($sharedcalendar:)</variable>
+ </grabelement>
+ </request>
+ <request user="$useradmin:" pswd="$pswdadmin:">
+ <method>DELETEALL</method>
+ <ruri>$notificationpath1:/</ruri>
+ <ruri>$notificationpath2:/</ruri>
+ </request>
+ </test>
+ <test name='2' ignore='no'>
+ <description>initial query - grab token</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-init-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>shared/</value>
+ </arg>
+ <arg>
+ <name>ignoremissing</name>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='3' ignore='no'>
+ <description>initial query - grab token for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-init-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$calendar:/</value>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ <arg>
+ <name>ignoremissing</name>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='4' ignore='no'>
+ <description>Change a property by user 1</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='5' ignore='no'>
+ <description>Sync for user 1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token1-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>shared/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='6' ignore='no'>
+ <description>Sync for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token2-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='7' ignore='no'>
+ <description>Remove a property by user 1</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='8' ignore='no'>
+ <description>Sync for user 1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token1-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>shared/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='9' ignore='no'>
+ <description>Sync for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token2-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='10' ignore='no'>
+ <description>Change a property by user 2</description>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>PROPPATCH</method>
+ <ruri>$calendarhome2:/$sharedcalendar:/</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/17.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='11' ignore='no'>
+ <description>Sync for user 1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token1-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>shared/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='12' ignore='no'>
+ <description>Sync for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token2-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='13' ignore='no'>
+ <description>Remove a property by user 1</description>
+ <request user="$userid2:" pswd="$pswd2:">
+ <method>PROPPATCH</method>
+ <ruri>$calendarhome2:/$sharedcalendar:/</ruri>
+ <data>
+ <content-type>text/vcard; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/18.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='14' ignore='no'>
+ <description>Sync for user 1</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token1-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>shared/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken1:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken1:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='15' ignore='no'>
+ <description>Sync for user 2</description>
+ <request user="$userid2:" pswd="$pswd2:" print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome2:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data substitutions='yes'>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/REPORT/sync-token2-level-1.xml</filepath>
+ </data>
+ <verify>
+ <callback>multistatusItems</callback>
+ <arg>
+ <name>okhrefs</name>
+ <value>$sharedcalendar:/</value>
+ </arg>
+ </verify>
+ <verify>
+ <callback>xmlElementMatch</callback>
+ <arg>
+ <name>exists</name>
+ <value>/{DAV:}multistatus/{DAV:}sync-token[!$synctoken2:]</value>
+ </arg>
+ </verify>
+ <grabelement>
+ <name>/{DAV:}multistatus/{DAV:}sync-token</name>
+ <variable>$synctoken2:</variable>
+ </grabelement>
+ </request>
+ </test>
+ <test name='16'>
+ <description>Sharer unshares</description>
+ <request print-response='no'>
+ <method>POST</method>
+ <ruri>$calendarhome1:/shared/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/Common/POST/sharingremove2.xml</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
<end>
<request user="$useradmin:" pswd="$pswdadmin:">
<method>DELETEALL</method>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/sync-report.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/sync-report.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/sync-report.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -3933,6 +3933,34 @@
</test>
</test-suite>
+ <test-suite name='limited reports' ignore='no'>
+ <test name='1' ignore='no'>
+ <exclude-feature>
+ <feature>sync-report-limit</feature>
+ </exclude-feature>
+ <description>Limit not allowed</description>
+ <request print-response='no'>
+ <method>REPORT</method>
+ <ruri>$calendarhome1:/</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/reports/sync/21.xml</filepath>
+ </data>
+ <verify>
+ <callback>prepostcondition</callback>
+ <arg>
+ <name>error</name>
+ <value>{DAV:}number-of-matches-within-limits</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
<end/>
</caldavtest>
Copied: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/vtodos.xml (from rev 11780, CalDAVTester/trunk/scripts/tests/CalDAV/vtodos.xml)
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/vtodos.xml (rev 0)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CalDAV/vtodos.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -0,0 +1,53 @@
+<?xml version="1.0" standalone="no"?>
+
+<!DOCTYPE caldavtest SYSTEM "caldavtest.dtd">
+
+<!--
+ Copyright (c) 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>Tests a bunch of VTODO data</description>
+
+ <require-feature>
+ <feature>caldav</feature>
+ </require-feature>
+
+ <start/>
+
+ <test-suite name='PUT'>
+ <test name='1'>
+ <description>PUT calendar data</description>
+ <request iterate-data="yes" end-delete="yes">
+ <method>PUT</method>
+ <ruri>$taskspath1:/**</ruri>
+ <data>
+ <content-type>text/calendar; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/vtodos</filepath>
+ </data>
+ <verify>
+ <callback>statusCode</callback>
+ <arg>
+ <name>status</name>
+ <value>2xx</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <end/>
+
+</caldavtest>
Property changes on: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV
___________________________________________________________________
Modified: svn:mergeinfo
- /CalDAVTester/branches/release/CalDAVTester-3.0-dev/scripts/tests/CardDAV:7584
/CalDAVTester/branches/release/CalDAVTester-4.3-dev/scripts/tests/CardDAV:10193
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/scripts/tests/CardDAV:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/scripts/tests/CardDAV:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/scripts/tests/CardDAV:8221-8346
/CalDAVTester/branches/users/cdaboo/conditional-4466/scripts/tests/CardDAV:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/scripts/tests/CardDAV:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/scripts/tests/CardDAV:3575-3581
/CalDAVTester/branches/users/cdaboo/managed-attachments/scripts/tests/CardDAV:9986-10145
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/scripts/tests/CardDAV:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/scripts/tests/CardDAV:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/scripts/tests/CardDAV:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/scripts/tests/CardDAV:5229-5440
/CalDAVTester/branches/users/gaya/sharedgroupstester-2/scripts/tests/CardDAV:11078-11181
/CalDAVTester/branches/users/gaya/sharedgroupstester-3/scripts/tests/CardDAV:11181-11204
+ /CalDAVTester/branches/release/CalDAVTester-3.0-dev/scripts/tests/CardDAV:7584
/CalDAVTester/branches/release/CalDAVTester-4.3-dev/scripts/tests/CardDAV:10193
/CalDAVTester/branches/users/cdaboo/attendee-comments-2887/scripts/tests/CardDAV:2888-2910
/CalDAVTester/branches/users/cdaboo/better-proxy-3148/scripts/tests/CardDAV:3149-3163
/CalDAVTester/branches/users/cdaboo/component-set-fixes/scripts/tests/CardDAV:8221-8346
/CalDAVTester/branches/users/cdaboo/conditional-4466/scripts/tests/CardDAV:4467-4469
/CalDAVTester/branches/users/cdaboo/implicitauto-2948/scripts/tests/CardDAV:2949-2989
/CalDAVTester/branches/users/cdaboo/location-partial-accept-3574/scripts/tests/CardDAV:3575-3581
/CalDAVTester/branches/users/cdaboo/managed-attachments/scripts/tests/CardDAV:9986-10145
/CalDAVTester/branches/users/cdaboo/normalize-cuaddr-3533/scripts/tests/CardDAV:3534-3558
/CalDAVTester/branches/users/cdaboo/pycalendar/scripts/tests/CardDAV:7160-7206
/CalDAVTester/branches/users/cdaboo/pycard/scripts/tests/CardDAV:7226-7237
/CalDAVTester/branches/users/cdaboo/sharing-5228/scripts/tests/CardDAV:5229-5440
/CalDAVTester/branches/users/gaya/sharedgroupstester-2/scripts/tests/CardDAV:11078-11181
/CalDAVTester/branches/users/gaya/sharedgroupstester-3/scripts/tests/CardDAV:11181-11204
/CalDAVTester/trunk/scripts/tests/CardDAV:11744-11780
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/caldavtest.dtd
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/caldavtest.dtd 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/caldavtest.dtd 2013-10-03 19:47:20 UTC (rev 11782)
@@ -35,7 +35,8 @@
user CDATA ""
pswd CDATA ""
end-delete (yes|no) "no"
- print-response (yes|no) "no">
+ print-response (yes|no) "no"
+ iterate-data (yes|no) "no">
<!ELEMENT method (#PCDATA)>
<!ELEMENT ruri (#PCDATA)>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/sharing-groups.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/sharing-groups.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/sharing-groups.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -34,7 +34,8 @@
<ruri>$notificationpath1:/</ruri>
<ruri>$notificationpath2:/</ruri>
</request>
- <description>Sharer creates 2 persons and a group</description>
+
+ <!-- Sharer creates 2 persons and a group -->
<request print-response='no'>
<method>PUT</method>
<ruri>$addressbookpath1:/1.vcf</ruri>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/sharing-sync.xml
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/sharing-sync.xml 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/scripts/tests/CardDAV/sharing-sync.xml 2013-10-03 19:47:20 UTC (rev 11782)
@@ -2161,7 +2161,7 @@
<test-suite name='support-report-set/sync-token property' ignore='no'>
<test name='0' ignore='no'>
- <description>clean up old data</description>
+ <!-- clean up old data -->
<request user="$useradmin:" pswd="$pswdadmin:">
<method>DELETEALL</method>
<ruri>$addressbookhome1:/</ruri>
@@ -2171,7 +2171,7 @@
<ruri>$notificationpath1:/</ruri>
</request>
- <description>add 2 vcards to user1 address book</description>
+ <!-- add 2 vcards to user1 address book -->
<request>
<method>PUT</method>
<ruri>$addressbookpath1:/1.vcf</ruri>
@@ -2189,8 +2189,8 @@
</data>
</request>
- <description>share user2 address book with user1</description>
- <description>user2 POSTs invitation</description>
+ <!-- share user2 address book with user1 -->
+ <!-- user2 POSTs invitation -->
<request user="$userid2:" pswd="$pswd2:" print-response="no">
<method>POST</method>
<ruri>$addressbookpath2:/</ruri>
@@ -2199,7 +2199,8 @@
<filepath>Resource/CardDAV/sharing/sync/addressbook/11.xml</filepath>
</data>
</request>
- <description>Check user1 notification collection and get invite uid</description>
+
+ <!-- Check user1 notification collection and get invite uid -->
<request print-response="no">
<method>WAITCOUNT 1</method>
<ruri>$notificationpath1:/</ruri>
@@ -2212,7 +2213,8 @@
<variable>$inviteuid:</variable>
</grabelement>
</request>
- <description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+ <!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
<request print-response="no">
<method>POST</method>
<ruri>$addressbookhome1:/</ruri>
@@ -2225,7 +2227,8 @@
<method>DELETE</method>
<ruri>$notificationpath1:/$inviteuid:</ruri>
</request>
- <description>add 2 vcards to user2 address book</description>
+
+ <!-- add 2 vcards to user2 address book -->
<request user="$userid2:" pswd="$pswd2:">
<method>PUT</method>
<ruri>$addressbookpath2:/1.vcf</ruri>
@@ -3679,8 +3682,8 @@
<feature>sync-report-home</feature>
</require-feature>
<test name='1' ignore='no'>
- <description>Initialize</description>
- <description>clear user1 address book and unshare user2 address book</description>
+ <!-- Initialize -->
+ <!-- clear user1 address book and unshare user2 address book -->
<request>
<method>DELETE</method>
<ruri>$addressbookpath1:/</ruri>
@@ -3702,8 +3705,9 @@
<callback>statusCode</callback>
</verify>
</request>
- <description>share user3 address book with user1</description>
- <description>user3 POSTs invitation</description>
+
+ <!-- share user3 address book with user1 -->
+ <!-- user3 POSTs invitation -->
<request user="$userid3:" pswd="$pswd3:" print-response="no">
<method>POST</method>
<ruri>$addressbookpath3:/</ruri>
@@ -3712,7 +3716,8 @@
<filepath>Resource/CardDAV/sharing/sync/addressbook/13.xml</filepath>
</data>
</request>
- <description>Check user1 notification collection and get invite uid</description>
+
+ <!-- Check user1 notification collection and get invite uid -->
<request print-response="no">
<method>WAITCOUNT 1</method>
<ruri>$notificationpath1:/</ruri>
@@ -3725,7 +3730,8 @@
<variable>$inviteuid:</variable>
</grabelement>
</request>
- <description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+ <!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
<request print-response="no">
<method>POST</method>
<ruri>$addressbookhome1:/</ruri>
@@ -3738,7 +3744,8 @@
<method>DELETE</method>
<ruri>$notificationpath1:/$inviteuid:</ruri>
</request>
- <description>add 2 vcards to user3 address book</description>
+
+ <!-- add 2 vcards to user3 address book -->
<request user="$userid3:" pswd="$pswd3:">
<method>PUT</method>
<ruri>$addressbookpath3:/1.vcf</ruri>
@@ -3756,8 +3763,8 @@
</data>
</request>
- <description>share user4 address book with user1</description>
- <description>user4 POSTs invitation</description>
+ <!-- share user4 address book with user1 -->
+ <!-- user4 POSTs invitation -->
<request user="$userid4:" pswd="$pswd4:" print-response="no">
<method>POST</method>
<ruri>$addressbookpath4:/</ruri>
@@ -3766,7 +3773,8 @@
<filepath>Resource/CardDAV/sharing/sync/addressbook/15.xml</filepath>
</data>
</request>
- <description>Check user1 notification collection and get invite uid</description>
+
+ <!-- Check user1 notification collection and get invite uid -->
<request print-response="no">
<method>WAITCOUNT 1</method>
<ruri>$notificationpath1:/</ruri>
@@ -3779,7 +3787,8 @@
<variable>$inviteuid:</variable>
</grabelement>
</request>
- <description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+ <!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
<request print-response="no">
<method>POST</method>
<ruri>$addressbookhome1:/</ruri>
@@ -3792,7 +3801,8 @@
<method>DELETE</method>
<ruri>$notificationpath1:/$inviteuid:</ruri>
</request>
- <description>add 2 vcards to user4 address book</description>
+
+ <!-- add 2 vcards to user4 address book -->
<request user="$userid4:" pswd="$pswd4:">
<method>PUT</method>
<ruri>$addressbookpath4:/1.vcf</ruri>
@@ -4335,8 +4345,8 @@
</test>
<test name='3' ignore='no'>
<description>add addressbook - test last sync</description>
- <description>share user3 address book with user1</description>
- <description>user3 POSTs invitation</description>
+ <!-- share user3 address book with user1 -->
+ <!-- user3 POSTs invitation -->
<request user="$userid3:" pswd="$pswd3:" print-response="no">
<method>POST</method>
<ruri>$addressbookpath3:/</ruri>
@@ -4345,7 +4355,8 @@
<filepath>Resource/CardDAV/sharing/sync/addressbook/13.xml</filepath>
</data>
</request>
- <description>Check user1 notification collection and get invite uid</description>
+
+ <!-- Check user1 notification collection and get invite uid -->
<request print-response="no">
<method>WAITCOUNT 1</method>
<ruri>$notificationpath1:/</ruri>
@@ -4358,7 +4369,8 @@
<variable>$inviteuid:</variable>
</grabelement>
</request>
- <description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+ <!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
<request print-response="no">
<method>POST</method>
<ruri>$addressbookhome1:/</ruri>
@@ -4433,8 +4445,9 @@
<ruri>$addressbookhome4:/</ruri>
<ruri>$notificationpath1:/</ruri>
</request>
- <description>share user3 address book with user1</description>
- <description>user3 POSTs invitation</description>
+
+ <!-- share user3 address book with user1 -->
+ <!-- user3 POSTs invitation -->
<request user="$userid3:" pswd="$pswd3:" print-response="no">
<method>POST</method>
<ruri>$addressbookpath3:/</ruri>
@@ -4443,7 +4456,8 @@
<filepath>Resource/CardDAV/sharing/sync/addressbook/13.xml</filepath>
</data>
</request>
- <description>Check user1 notification collection and get invite uid</description>
+
+ <!-- Check user1 notification collection and get invite uid -->
<request print-response="no">
<method>WAITCOUNT 1</method>
<ruri>$notificationpath1:/</ruri>
@@ -4456,7 +4470,8 @@
<variable>$inviteuid:</variable>
</grabelement>
</request>
- <description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+ <!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
<request print-response="no">
<method>POST</method>
<ruri>$addressbookhome1:/</ruri>
@@ -4469,7 +4484,8 @@
<method>DELETE</method>
<ruri>$notificationpath1:/$inviteuid:</ruri>
</request>
- <description>add 2 vcards to user3 address book</description>
+
+ <!-- add 2 vcards to user3 address book -->
<request user="$userid3:" pswd="$pswd3:">
<method>PUT</method>
<ruri>$addressbookpath3:/1.vcf</ruri>
@@ -4487,8 +4503,8 @@
</data>
</request>
- <description>share user4 address book with user1</description>
- <description>user4 POSTs invitation</description>
+ <!-- share user4 address book with user1 -->
+ <!-- user4 POSTs invitation -->
<request user="$userid4:" pswd="$pswd4:" print-response="no">
<method>POST</method>
<ruri>$addressbookpath4:/</ruri>
@@ -4497,7 +4513,8 @@
<filepath>Resource/CardDAV/sharing/sync/addressbook/15.xml</filepath>
</data>
</request>
- <description>Check user1 notification collection and get invite uid</description>
+
+ <!-- Check user1 notification collection and get invite uid -->
<request print-response="no">
<method>WAITCOUNT 1</method>
<ruri>$notificationpath1:/</ruri>
@@ -4510,7 +4527,8 @@
<variable>$inviteuid:</variable>
</grabelement>
</request>
- <description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+ <!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
<request print-response="no">
<method>POST</method>
<ruri>$addressbookhome1:/</ruri>
@@ -4523,7 +4541,8 @@
<method>DELETE</method>
<ruri>$notificationpath1:/$inviteuid:</ruri>
</request>
- <description>add 2 vcards to user4 address book</description>
+
+ <!-- add 2 vcards to user4 address book -->
<request user="$userid4:" pswd="$pswd4:">
<method>PUT</method>
<ruri>$addressbookpath4:/1.vcf</ruri>
@@ -5027,8 +5046,8 @@
</test>
<test name='-3' ignore='no'>
<description>add addressbook - test last sync</description>
- <description>share user3 address book with user1</description>
- <description>user3 POSTs invitation</description>
+ <!-- share user3 address book with user1 -->
+ <!-- user3 POSTs invitation -->
<request user="$userid3:" pswd="$pswd3:" print-response="no">
<method>POST</method>
<ruri>$addressbookpath3:/</ruri>
@@ -5037,7 +5056,8 @@
<filepath>Resource/CardDAV/sharing/sync/addressbook/13.xml</filepath>
</data>
</request>
- <description>Check user1 notification collection and get invite uid</description>
+
+ <!-- Check user1 notification collection and get invite uid -->
<request print-response="no">
<method>WAITCOUNT 1</method>
<ruri>$notificationpath1:/</ruri>
@@ -5050,7 +5070,8 @@
<variable>$inviteuid:</variable>
</grabelement>
</request>
- <description>user1 replies ACCEPTED and deletes inviteUID from notification collection</description>
+
+ <!-- user1 replies ACCEPTED and deletes inviteUID from notification collection -->
<request print-response="no">
<method>POST</method>
<ruri>$addressbookhome1:/</ruri>
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/caldavtest.py
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/caldavtest.py 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/caldavtest.py 2013-10-03 19:47:20 UTC (rev 11782)
@@ -197,18 +197,24 @@
self.manager.log(manager.LOG_HIGH, " Excluded features: %s" % (", ".join(sorted(test.excludedFeatures())),))
return "i"
else:
- result = False
+ result = True
resulttxt = ""
postgresCount = self.postgresInit()
if test.stats:
reqstats = stats()
else:
reqstats = None
- for ctr in range(test.count): #@UnusedVariable
+ for ctr in range(test.count):
for req_count, req in enumerate(test.requests):
- result, resulttxt, _ignore_response, _ignore_respdata = self.dorequest(req, test.details, True, False, reqstats, etags=etags, label="%s | #%s" % (label, req_count + 1,), count=ctr + 1)
- if not result:
- break
+ if getattr(req, "iterate_data", False):
+ while req.getNextData():
+ result, resulttxt, _ignore_response, _ignore_respdata = self.dorequest(req, test.details, True, False, reqstats, etags=etags, label="%s | #%s" % (label, req_count + 1,), count=ctr + 1)
+ if not result:
+ break
+ else:
+ result, resulttxt, _ignore_response, _ignore_respdata = self.dorequest(req, test.details, True, False, reqstats, etags=etags, label="%s | #%s" % (label, req_count + 1,), count=ctr + 1)
+ if not result:
+ break
loglevel = [manager.LOG_ERROR, manager.LOG_HIGH][result]
self.manager.log(loglevel, ["[FAILED]", "[OK]"][result])
if len(resulttxt) > 0:
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/manager.py
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/manager.py 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/manager.py 2013-10-03 19:47:20 UTC (rev 11782)
@@ -198,7 +198,7 @@
if all:
files = []
- os.path.walk(dname, lambda arg, dir, names: files.extend([os.path.join(dir, name) for name in names]), None)
+ os.path.walk(dname, lambda arg, dir, names: files.extend([os.path.join(dir, name) for name in names]) if not dir.startswith("test") else None, None)
for file in files:
if file.endswith(".xml") and file[len(dname) + 1:] not in excludes:
if subdir is None or file[len(dname) + 1:].startswith(subdir):
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/request.py
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/request.py 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/request.py 2013-10-03 19:47:20 UTC (rev 11782)
@@ -23,6 +23,7 @@
from src.xmlUtils import getYesNoAttributeValue
import base64
import datetime
+import os
import re
import src.xmlDefs
import time
@@ -154,6 +155,7 @@
self.ruris = []
self.ruri = ""
self.data = None
+ self.iterate_data = False
self.count = 1
self.verifiers = []
self.graburi = None
@@ -287,7 +289,7 @@
data = self.data.value
else:
# read in the file data
- fd = open(self.data.filepath, "r")
+ fd = open(self.data.nextpath if hasattr(self.data, "nextpath") else self.data.filepath, "r")
try:
data = fd.read()
finally:
@@ -300,6 +302,20 @@
return data
+ def getNextData(self):
+ if not hasattr(self, "dataList"):
+ self.dataList = sorted([path for path in os.listdir(self.data.filepath) if not path.startswith(".")])
+ if len(self.dataList):
+ self.data.nextpath = os.path.join(self.data.filepath, self.dataList.pop(0))
+ return True
+ else:
+ if hasattr(self.data, "nextpath"):
+ delattr(self.data, "nextpath")
+ if hasattr(self, "dataList"):
+ delattr(self, "dataList")
+ return False
+
+
def generateCalendarData(self, data):
"""
FIXME: does not work for events with recurrence overrides.
@@ -325,6 +341,7 @@
self.end_delete = getYesNoAttributeValue(node, src.xmlDefs.ATTR_END_DELETE)
self.print_request = self.manager.print_request or getYesNoAttributeValue(node, src.xmlDefs.ATTR_PRINT_REQUEST)
self.print_response = self.manager.print_response or getYesNoAttributeValue(node, src.xmlDefs.ATTR_PRINT_RESPONSE)
+ self.iterate_data = getYesNoAttributeValue(node, src.xmlDefs.ATTR_ITERATE_DATA)
for child in node.getchildren():
if child.tag == src.xmlDefs.ELEMENT_REQUIRE_FEATURE:
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/xmlDefs.py
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/xmlDefs.py 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/src/xmlDefs.py 2013-10-03 19:47:20 UTC (rev 11782)
@@ -83,6 +83,7 @@
ATTR_IGNORE = "ignore"
ATTR_IGNORE_ALL = "ignore-all"
ATTR_INTERVAL = "interval"
+ATTR_ITERATE_DATA = "iterate-data"
ATTR_NAME = "name"
ATTR_ONLY = "only"
ATTR_PRINT_REQUEST = "print-request"
Modified: CalDAVTester/branches/users/gaya/sharedgroupfixestester/verifiers/calendarDataMatch.py
===================================================================
--- CalDAVTester/branches/users/gaya/sharedgroupfixestester/verifiers/calendarDataMatch.py 2013-10-03 19:38:31 UTC (rev 11781)
+++ CalDAVTester/branches/users/gaya/sharedgroupfixestester/verifiers/calendarDataMatch.py 2013-10-03 19:47:20 UTC (rev 11782)
@@ -29,6 +29,7 @@
files = args.get("filepath", [])
caldata = args.get("data", [])
filters = args.get("filter", [])
+ statusCode = args.get("status", ["200", "201", "207"])
if "EMAIL parameter" not in manager.server_info.features:
filters.append("ATTENDEE:EMAIL")
@@ -46,8 +47,8 @@
filters.remove(afilter[1:])
filters = filter(lambda x: x[0] != "!", filters)
- # status code must be 200, 201, 207
- if response.status not in (200, 201, 207):
+ # status code must be 200, 201, 207 or explicitly specified code
+ if str(response.status) not in statusCode:
return False, " HTTP Status Code Wrong: %d" % (response.status,)
# look for response data
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20131003/a78c8f82/attachment-0001.html>
More information about the calendarserver-changes
mailing list