Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F257140
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
35 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/test/Resource/CalDAV/scheduleprops/1.xml b/test/Resource/CalDAV/scheduleprops/1.xml
new file mode 100644
index 0000000..64d8c08
--- /dev/null
+++ b/test/Resource/CalDAV/scheduleprops/1.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
+<D:prop>
+<C:schedule-inbox-URL/>
+<C:schedule-outbox-URL/>
+<C:calendar-user-address-set/>
+</D:prop>
+</D:propfind>
diff --git a/test/runtests.sh b/test/runtests.sh
index e9082c2..574335c 100755
--- a/test/runtests.sh
+++ b/test/runtests.sh
@@ -1,36 +1,37 @@
#!/bin/bash
#
# Copyright (C) 2013, Kolab Systems AG <contact@kolabsys.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
##
# Initializes the CalDAVTester environment and runs all test scripts
#
CALDAVTESTER=$1
PYTHONPATH=`$CALDAVTESTER/run.py -p`
export PYTHONPATH="$PYTHONPATH:$CALDAVTESTER/../pycalendar/src"
$CALDAVTESTER/testcaldav.py --print-details-onfail -s serverinfo.xml \
CardDAV/current-user-principal.xml \
CardDAV/ab-client.xml \
CardDAV/propfind.xml \
CardDAV/put.xml \
CardDAV/directory-gateway.xml \
CalDAV/current-user-principal.xml \
CalDAV/caldavIOP.xml \
CalDAV/ctag.xml \
- CalDAV/attachments.xml
+ CalDAV/attachments.xml \
+ CalDAV/scheduleprops.xml
diff --git a/test/scripts/tests/CalDAV/scheduleprops.xml b/test/scripts/tests/CalDAV/scheduleprops.xml
new file mode 100644
index 0000000..cc00c37
--- /dev/null
+++ b/test/scripts/tests/CalDAV/scheduleprops.xml
@@ -0,0 +1,255 @@
+<?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 properties defined by caldav-schedule</description>
+
+ <require-feature>
+ <feature>caldav</feature>
+ </require-feature>
+
+ <start/>
+
+ <test-suite name='Inbox/Outbox'>
+ <test name='1'>
+ <description>PROPFIND inbox/outbox URLs</description>
+ <request>
+ <method>PROPFIND</method>
+ <ruri>$principal1:</ruri>
+ <header>
+ <name>Depth</name>
+ <value>0</value>
+ </header>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/1.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}schedule-inbox-URL</value>
+ <value>{urn:ietf:params:xml:ns:caldav}schedule-outbox-URL</value>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-user-address-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <test-suite name='free-busy-set' ignore='yes'>
+ <test name='1'>
+ <description>PROPFIND inbox</description>
+ <request>
+ <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/scheduleprops/2.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value><![CDATA[{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set$<href xmlns="DAV:">$calendarpath1:/</href>]]></value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='2'>
+ <description>PROPPATCH valid calendar</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$inboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='3'>
+ <description>PROPPATCH invalid calendar</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$inboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/4.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>badprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='4'>
+ <description>PROPPATCH delete it - fails</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$inboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/5.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>badprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='5'>
+ <description>PROPPATCH valid calendar - reset it</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$inboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='6'>
+ <description>Setup some calendars</description>
+ <request end-delete='yes'>
+ <method>MKCALENDAR</method>
+ <ruri>$calendarhome1:/test1/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ <request end-delete='yes'>
+ <method>MKCALENDAR</method>
+ <ruri>$calendarhome1:/test2/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='7'>
+ <description>PROPPATCH - valid</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$inboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/6.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='8'>
+ <description>Delete a calendar</description>
+ <request>
+ <method>DELETE</method>
+ <ruri>$calendarhome1:/test2/</ruri>
+ <verify>
+ <callback>statusCode</callback>
+ </verify>
+ </request>
+ </test>
+ <test name='9'>
+ <description>PROPPATCH - valid new calendar, invalid existing</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$inboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/7.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>badprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='10'>
+ <description>PROPPATCH - invalid new calendar, invalid existing</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$inboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/8.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>badprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ <test name='11'>
+ <description>PROPPATCH valid calendar - reset it</description>
+ <request>
+ <method>PROPPATCH</method>
+ <ruri>$inboxpath1:/</ruri>
+ <data>
+ <content-type>text/xml; charset=utf-8</content-type>
+ <filepath>Resource/CalDAV/scheduleprops/3.xml</filepath>
+ </data>
+ <verify>
+ <callback>propfindItems</callback>
+ <arg>
+ <name>okprops</name>
+ <value>{urn:ietf:params:xml:ns:caldav}calendar-free-busy-set</value>
+ </arg>
+ </verify>
+ </request>
+ </test>
+ </test-suite>
+
+ <end/>
+
+</caldavtest>
diff --git a/test/serverinfo.xml b/test/serverinfo.xml
index 14df516..4ab96fb 100644
--- a/test/serverinfo.xml
+++ b/test/serverinfo.xml
@@ -1,815 +1,815 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE serverinfo SYSTEM "serverinfo.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.
-->
<serverinfo>
<host>localhost</host>
<nonsslport>80</nonsslport>
<sslport>443</sslport>
<authtype>basic</authtype>
<features>
<!-- Generic WebDAV extensions -->
<feature>COPY Method</feature> <!-- COPY method -->
<feature>MOVE Method</feature> <!-- MOVE method -->
<feature>Extended MKCOL</feature> <!-- Extended MKCOL -->
<!-- ACL related -->
<!-- <feature>ACL Method</feature> --> <!-- ACL method -->
<!-- <feature>acl-principal-prop-set REPORT</feature> --> <!-- ACL acl-principal-prop-set REPORT -->
<!-- <feature>principal-match REPORT</feature> --> <!-- ACL principal-match REPORT -->
<!-- <feature>principal-property-search REPORT</feature> --> <!-- ACL principal-property-search REPORT -->
<!-- <feature>principal-search-property-set REPORT</feature> --> <!-- ACL principal-search-property-set REPORT -->
<!-- <feature>add-member</feature> --> <!-- Add-member used to create resources -->
<!-- <feature>brief</feature> --> <!-- Brief header for PROPFIND, REPORT -->
<!-- <feature>bulk-post</feature> --> <!-- Bulk POST requests -->
<feature>ctag</feature> <!-- ctag extension -->
<feature>current-user-principal</feature> <!-- current-user-principal extension -->
<!-- <feature>directory listing</feature> --> <!-- GET on collection -->
<!-- <feature>extended-principal-search</feature> --> <!-- Extended principal-property-search REPORT extension -->
<!-- <feature>expand-property</feature> --> <!-- Expand property REPORT -->
<!-- <feature>only-proxy-groups</feature> --> <!-- Group-membership only includes delegated-to groups -->
<!-- <feature>limits</feature> --> <!-- max-collections and max-resources limits -->
<!-- <feature>prefer</feature> --> <!-- Prefer header overall support -->
<!-- <feature>prefer-minimal</feature> --> <!-- Prefer header return=minimal -->
<!-- <feature>prefer-representation</feature> --> <!-- Prefer header return=representation -->
<!-- <feature>prefer-noroot</feature> --> <!-- Prefer header depth-noroot -->
<!-- <feature>quota</feature> --> <!-- WebDAV QUOTA -->
<!-- <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-home</feature> --> <!-- WebDAV collection sync REPORT on Homes -->
<feature>well-known</feature> <!-- well-known feature -->
<!-- <feature>per-object-ACLs</feature> --> <!-- ACL for objects in calendar/address books -->
<!-- <feature>regular-collection</feature> --> <!-- Regular collections allowed in calendar/address book homes -->
<!-- CalDAV specific extension -->
<feature>caldav</feature> <!-- Basic CalDAV feature enabler -->
<!-- <feature>auto-accept</feature> --> <!-- Auto-accept for rooms & locations -->
<!-- <feature>auto-accept-modes</feature> --> <!-- Auto-accept modes -->
<!--<feature>dropbox</feature> --> <!-- dropbox extension -->
<!-- <feature>default-alarms</feature> --> <!-- default alarms extension -->
<!-- <feature>EMAIL parameter</feature> --> <!-- Server normalizes cuaddress and adds EMAIL parameter -->
<!-- <feature>extended-freebusy</feature> --> <!-- Extended freebusy response -->
<!-- <feature>implicit-scheduling</feature> --> <!-- CalDAV scheduling - implicit -->
<!-- <feature>location-resource-tracking</feature> --> <!-- Server tracks who makes unscheduled changes to locations and resources -->
<!-- <feature>managed-attachments</feature> --> <!-- CalDAV Managed Attachments -->
<!-- <feature>maskuid</feature> --> <!-- maskuid extension -->
<!-- <feature>partitioning</feature> --> <!-- Partitioned server -->
<!-- <feature>no-duplicate-uids</feature> --> <!-- duplicate UIDs in same home not supported -->
<!-- <feature>partstat-timestamp</feature> --> <!-- Time stamps when PARTSTAT changes extension -->
<!-- <feature>private-comments</feature> --> <!-- private-comments extension -->
<!-- <feature>private-events</feature> --> <!-- private-events extension -->
<!-- <feature>proxy</feature> --> <!-- calendar-user-proxy extension -->
<!-- <feature>proxy-authz</feature> --> <!-- sudo user extension -->
<!-- <feature>remove-duplicate-alarms</feature> --> <!-- Server removes any duplicate alarms on PUT -->
<!-- <feature>query-extended</feature> --> <!-- calendar-query-extended extension -->
<!-- <feature>shared-calendars</feature> --> <!-- Shared calendars extension -->
- <!--><feature>schedule-inbox</feature> --> <!-- Scheduling Extension -->
+ <feature>schedule-inbox</feature> <!-- Scheduling Extension -->
<!-- <feature>schedule-changes</feature> --> <!-- schedule-changes property extension -->
<!-- <feature>split-calendars</feature> --> <!-- Calendars are split by component type -->
<!-- <feature>supported-component-sets</feature> --> <!-- CALDAV:supported-calendar-component-sets on calendar homes -->
<!-- <feature>supported-component-sets-one</feature> --> <!-- Only single component calendars allowed to be created -->
<!-- <feature>timerange-low-limit</feature> --> <!-- Time-range only valid one year back -->
<!-- <feature>timerange-high-limit</feature> --> <!-- Time-range only valid 5 years ahead -->
<!-- <feature>timezone-service</feature> --> <!-- Timezone service extension for Wiki-->
<!-- <feature>timezone-std-service</feature> --> <!-- Timezone standard service extension -->
<!-- <feature>vavailability</feature> --> <!-- VAVAILABILITY on inbox -->
<!-- <feature>webcal</feature> --> <!-- Internet calendar subscription via GET on calendar collection -->
<!-- CardDAV specific extension -->
<feature>carddav</feature> <!-- Basic CardDAV feature enabler -->
<!-- <feature>default-addressbook</feature> --> <!-- Default address book behavior -->
<!-- <feature>global-addressbook</feature> --> <!-- Global address book for each user -->
<!-- <feature>shared-addressbooks</feature> --> <!-- Shared address books extension -->
<feature>directory-gateway</feature> <!-- Directory gateway extension -->
</features>
<substitutions>
<!-- relative path to caldav root-->
<substitution>
<key>$root:</key>
<value>/iRony/</value>
</substitution>
<!-- Useful xpath shortcuts for verifiers -->
<substitution>
<key>$multistatus-response-prefix:</key>
<value>/{DAV:}multistatus/{DAV:}response</value>
</substitution>
<substitution>
<key>$multistatus-href-prefix:</key>
<value>/{DAV:}multistatus/{DAV:}response/{DAV:}href</value>
</substitution>
<substitution>
<key>$verify-response-prefix:</key>
<value>{DAV:}response/{DAV:}propstat/{DAV:}prop</value>
</substitution>
<substitution>
<key>$verify-property-prefix:</key>
<value>/{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop</value>
</substitution>
<substitution>
<key>$verify-bad-response:</key>
<value>/{DAV:}multistatus/{DAV:}response/{DAV:}status</value>
</substitution>
<substitution>
<key>$verify-error-response:</key>
<value>/{DAV:}multistatus/{DAV:}response/{DAV:}error</value>
</substitution>
<substitution>
<key>$CALDAV:</key>
<value>urn:ietf:params:xml:ns:caldav</value>
</substitution>
<substitution>
<key>$CARDDAV:</key>
<value>urn:ietf:params:xml:ns:carddav</value>
</substitution>
<substitution>
<key>$CS:</key>
<value>http://calendarserver.org/ns/</value>
</substitution>
<!-- Server configuration settings -->
<!-- $host: and $hostssl: are implicitly added by CalDAVTester based
on the host/nonsslport/sslport values and ssl command line switch -->
<!-- relative path to main principal collection-->
<substitution>
<key>$principalcollection:</key>
<value>$root:principals/</value>
</substitution>
<!-- the core recored type collections-->
<substitution>
<key>$uidstype:</key>
<value>__uids__</value>
</substitution>
<substitution>
<key>$userstype:</key>
<value>users</value>
</substitution>
<substitution>
<key>$groupstype:</key>
<value>groups</value>
</substitution>
<substitution>
<key>$locationstype:</key>
<value>locations</value>
</substitution>
<substitution>
<key>$resourcestype:</key>
<value>resources</value>
</substitution>
<!-- relative path to record type principal collections-->
<substitution>
<key>$principals_uids:</key>
<value>$principalcollection:$uidstype:/</value>
</substitution>
<substitution>
<key>$principals_users:</key>
<value>$principalcollection:$userstype:/</value>
</substitution>
<substitution>
<key>$principals_groups:</key>
<value>$principalcollection:$groupstype:/</value>
</substitution>
<substitution>
<key>$principals_resources:</key>
<value>$principalcollection:$resourcestype:/</value>
</substitution>
<substitution>
<key>$principals_locations:</key>
<value>$principalcollection:$locationstype:/</value>
</substitution>
<!-- relative path to calendars collection-->
<substitution>
<key>$calendars:</key>
<value>$root:calendars/</value>
</substitution>
<!-- relative path to record type calendar collections-->
<substitution>
<key>$calendars_uids:</key>
<value>$calendars:$uidstype:/</value>
</substitution>
<substitution>
<key>$calendars_users:</key>
<value>$calendars:$userstype:/</value>
</substitution>
<substitution>
<key>$calendars_groups:</key>
<value>$calendars:$groupstype:/</value>
</substitution>
<substitution>
<key>$calendars_resources:</key>
<value>$calendars:$resourcestype:/</value>
</substitution>
<substitution>
<key>$calendars_locations:</key>
<value>$calendars:$locationstype:/</value>
</substitution>
<!-- primary calendar name-->
<substitution>
<key>$calendar:</key>
<value>Calendar</value>
</substitution>
<!-- primary tasks-only calendar name-->
<substitution>
<key>$tasks:</key>
<value>Tasks</value>
</substitution>
<!-- inbox name-->
<substitution>
<key>$inbox:</key>
<value>inbox</value>
</substitution>
<!-- outbox name-->
<substitution>
<key>$outbox:</key>
<value>outbox</value>
</substitution>
<!-- dropbox name-->
<substitution>
<key>$dropbox:</key>
<value>dropbox</value>
</substitution>
<!-- attachments name-->
<substitution>
<key>$attachments:</key>
<value>dropbox</value>
</substitution>
<!-- notification name-->
<substitution>
<key>$notification:</key>
<value>notification</value>
</substitution>
<!-- freebusy name-->
<substitution>
<key>$freebusy:</key>
<value>freebusy</value>
</substitution>
<!-- server-to-server inbox-->
<substitution>
<key>$servertoserver:</key>
<value>$root:inbox</value>
</substitution>
<!-- timezone service-->
<substitution>
<key>$timezoneservice:</key>
<value>$root:timezones</value>
</substitution>
<!-- timezone std service-->
<substitution>
<key>$timezonestdservice:</key>
<value>$root:stdtimezones</value>
</substitution>
<!-- relative path to calendars collection-->
<substitution>
<key>$addressbooks:</key>
<value>$root:addressbooks/</value>
</substitution>
<!-- relative path to record type calendar collections-->
<substitution>
<key>$addressbooks_uids:</key>
<value>$addressbooks:$uidstype:/</value>
</substitution>
<substitution>
<key>$addressbooks_users:</key>
<value>$addressbooks:$userstype:/</value>
</substitution>
<substitution>
<key>$addressbooks_groups:</key>
<value>$addressbooks:$groupstype:/</value>
</substitution>
<!-- primary addressbook name -->
<substitution>
<key>$addressbook:</key>
<value>Contacts</value>
</substitution>
<!-- global-addressbook name -->
<substitution>
<key>$global_addressbook:</key>
<value>global-addressbook</value>
</substitution>
<!-- directory name -->
<substitution>
<key>$directory:</key>
<value>$addressbooks:ldap-directory/</value>
</substitution>
<!-- POST add-member URI suffix -->
<substitution>
<key>$add-member:</key>
<value>;add-member</value>
</substitution>
<!-- user id for admin user -->
<substitution>
<key>$useradmin:</key>
<value>admin</value>
</substitution>
<!-- guid for admin user -->
<substitution>
<key>$useradminguid:</key>
<value>admin</value>
</substitution>
<!-- password for admin user -->
<substitution>
<key>$pswdadmin:</key>
<value>admin</value>
</substitution>
<!-- relative path to admin principal resource-->
<substitution>
<key>$principal_admin:</key>
<value>$principalcollection:$useradmin:/</value>
</substitution>
<substitution>
<key>$principaluri_admin:</key>
<value>$principalcollection:$useradminguid:/</value>
</substitution>
<!-- user id for apprentice user -->
<substitution>
<key>$userapprentice:</key>
<value>apprentice</value>
</substitution>
<!-- guid for apprentice user -->
<substitution>
<key>$userapprenticeguid:</key>
<value>apprentice</value>
</substitution>
<!-- password for apprentice user -->
<substitution>
<key>$pswdapprentice:</key>
<value>apprentice</value>
</substitution>
<!-- relative path to apprentice principal resource-->
<substitution>
<key>$principal_apprentice:</key>
<value>$principalcollection:$userapprentice:/</value>
</substitution>
<substitution>
<key>$principaluri_apprentice:</key>
<value>$principalcollection:$userapprenticeguid:/</value>
</substitution>
<!-- user id for proxy user -->
<substitution>
<key>$userproxy:</key>
<value>superuser</value>
</substitution>
<!-- password for proxy user -->
<substitution>
<key>$pswdproxy:</key>
<value>superuser</value>
</substitution>
<!-- User accounts -->
<repeat count="2">
<!-- user id -->
<substitution>
<key>$userid%d:</key>
<value>dav.user%02d@example.org</value>
</substitution>
<!-- user guid -->
<substitution>
<key>$userguid%d:</key>
<value>$userid%d:</value>
</substitution>
<!-- user name -->
<substitution>
<key>$username%d:</key>
<value>DAV User%02d</value>
</substitution>
<!-- user name URI encoded -->
<substitution>
<key>$username-encoded%d:</key>
<value>DAV%%20User%02d</value>
</substitution>
<!-- first name -->
<substitution>
<key>$firstname%d:</key>
<value>DAV</value>
</substitution>
<!-- last name -->
<substitution>
<key>$lastname%d:</key>
<value>User %02d</value>
</substitution>
<!-- password -->
<substitution>
<key>$pswd%d:</key>
<value>12345</value>
</substitution>
<!-- relative path to user principal resource-->
<substitution>
<key>$principal%d:</key>
<value>$principalcollection:$userid%d:/</value>
</substitution>
<substitution>
<key>$principaluri%d:</key>
<value>$principalcollection:dav.user%02d@example.org/</value>
</substitution>
<substitution>
<key>$principal%dnoslash:</key>
<value>$principalcollection:$userid%d:</value>
</substitution>
<!-- relative path to user calendar home-->
<substitution>
<key>$calendarhome%d:</key>
<value>$calendars:$userguid%d:</value>
</substitution>
<!-- relative path to user alternate calendar home-->
<substitution>
<key>$calendarhomealt%d:</key>
<value>$calendars:$userid%d:</value>
</substitution>
<!-- relative path to user calendar-->
<substitution>
<key>$calendarpath%d:</key>
<value>$calendarhome%d:/$calendar:</value>
</substitution>
<!-- relative path to user alternate calendar-->
<substitution>
<key>$calendarpathalt%d:</key>
<value>$calendarhomealt%d:/$calendar:</value>
</substitution>
<!-- relative path to user tasks calendar-->
<substitution>
<key>$taskspath%d:</key>
<value>$calendarhome%d:/$tasks:</value>
</substitution>
<!-- relative path to user inbox-->
<substitution>
<key>$inboxpath%d:</key>
<value>$calendarhome%d:/$inbox:</value>
</substitution>
<!-- relative path to user outbox-->
<substitution>
<key>$outboxpath%d:</key>
<value>$calendarhome%d:/$outbox:</value>
</substitution>
<!-- relative path to user dropbox-->
<substitution>
<key>$dropboxpath%d:</key>
<value>$calendarhome%d:/$dropbox:</value>
</substitution>
<!-- relative path to user notification-->
<substitution>
<key>$notificationpath%d:</key>
<value>$calendarhome%d:/$notification:</value>
</substitution>
<!-- relative path to user freebusy-->
<substitution>
<key>$freebusypath%d:</key>
<value>$calendarhome%d:/$freebusy:</value>
</substitution>
<substitution>
<key>$email%d:</key>
<value>$userid%d:</value>
</substitution>
<!-- calendar user address of user-->
<substitution>
<key>$cuaddr%d:</key>
<value>mailto:$email%d:</value>
</substitution>
<substitution>
<key>$cuaddralt%d:</key>
<value>$principaluri%d:</value>
</substitution>
<substitution>
<key>$cuaddraltnoslash%d:</key>
<value>$principals_uids:$userguid%d:</value>
</substitution>
<substitution>
<key>$cuaddrurn%d:</key>
<value>urn:uuid:$userguid%d:</value>
</substitution>
<!-- relative path to user addressbook home-->
<substitution>
<key>$addressbookhome%d:</key>
<value>$addressbooks:$userguid%d:</value>
</substitution>
<!-- relative path to user addressbook-->
<substitution>
<key>$addressbookpath%d:</key>
<value>$addressbooks:$userguid%d:/$addressbook:</value>
</substitution>
<!-- directory name -->
<substitution>
<key>$directory%d:</key>
<value>$addressbooks:$userguid%d:/ldap-directory/</value>
</substitution>
</repeat>
<!-- Public accounts -->
<repeat count="0">
<!-- user id -->
<substitution>
<key>$publicuserid%d:</key>
<value>public%02d</value>
</substitution>
<!-- user guid -->
<substitution>
<key>$publicuserguid%d:</key>
<value>public%02d</value>
</substitution>
<!-- user name -->
<substitution>
<key>$publicusername%d:</key>
<value>Public %02d</value>
</substitution>
<!-- password -->
<substitution>
<key>$publicpswd%d:</key>
<value>public%02d</value>
</substitution>
<!-- relative path to user principal resource-->
<substitution>
<key>$publicprincipal%d:</key>
<value>$principals_users:$publicuserid%d:/</value>
</substitution>
<substitution>
<key>$publicprincipaluri%d:</key>
<value>$principals_uids:$publicuserguid%d:/</value>
</substitution>
<!-- relative path to user calendar home-->
<substitution>
<key>$publiccalendarhome%d:</key>
<value>$calendars:$publicuserguid%d:</value>
</substitution>
<!-- relative path to user calendar-->
<substitution>
<key>$publiccalendarpath%d:</key>
<value>$calendars:$publicuserguid%d:/$calendar:</value>
</substitution>
<substitution>
<key>$publicemail%d:</key>
<value>$publicuserid%d:@example.com</value>
</substitution>
<!-- calendar user address of user-->
<substitution>
<key>$publiccuaddr%d:</key>
<value>mailto:$publicemail%d:</value>
</substitution>
<substitution>
<key>$publiccuaddralt%d:</key>
<value>$publicprincipaluri%d:</value>
</substitution>
<substitution>
<key>$publiccuaddrurn%d:</key>
<value>urn:uuid:$publicuserguid%d:</value>
</substitution>
</repeat>
<!-- Resource accounts -->
<repeat count="0">
<substitution>
<key>$resourceid%d:</key>
<value>resource%02d</value>
</substitution>
<!-- resource guid-->
<substitution>
<key>$resourceguid%d:</key>
<value>resource%02d</value>
</substitution>
<!-- resource name-->
<substitution>
<key>$resourcename%d:</key>
<value>Resource %02d</value>
</substitution>
<!-- relative path to first resource calendar home-->
<substitution>
<key>$rcalendarhome%d:</key>
<value>$calendars:$resourceguid%d:</value>
</substitution>
<!-- relative path to first resource calendar home-->
<substitution>
<key>$rcalendarpath%d:</key>
<value>$calendars:$resourceguid%d:/$calendar:</value>
</substitution>
<!-- relative path to first resource inbox-->
<substitution>
<key>$rinboxpath%d:</key>
<value>$calendars:$resourceguid%d:/$inbox:</value>
</substitution>
<!-- relative path to first resource outbox-->
<substitution>
<key>$routboxpath%d:</key>
<value>$calendars:$resourceguid%d:/$outbox:</value>
</substitution>
<!-- relative path to first resource principal resource-->
<substitution>
<key>$rprincipal%d:</key>
<value>$principals_resources:$resourceid%d:/</value>
</substitution>
<substitution>
<key>$rprincipaluri%d:</key>
<value>$principals_uids:$resourceguid%d:/</value>
</substitution>
<substitution>
<key>$rcuaddralt%d:</key>
<value>$rprincipaluri%d:</value>
</substitution>
<substitution>
<key>$rcuaddrurn%d:</key>
<value>urn:uuid:$resourceguid%d:</value>
</substitution>
</repeat>
<!-- Location accounts -->
<repeat count="0">
<substitution>
<key>$locationid%d:</key>
<value>location%02d</value>
</substitution>
<!-- location guid-->
<substitution>
<key>$locationguid%d:</key>
<value>location%02d</value>
</substitution>
<!-- location name-->
<substitution>
<key>$locationname%d:</key>
<value>Location %02d</value>
</substitution>
<!-- relative path to first location calendar home-->
<substitution>
<key>$lcalendarhome%d:</key>
<value>$calendars:$locationguid%d:</value>
</substitution>
<!-- relative path to first location calendar home-->
<substitution>
<key>$lcalendarpath%d:</key>
<value>$calendars:$locationguid%d:/$calendar:</value>
</substitution>
<!-- relative path to first location inbox-->
<substitution>
<key>$linboxpath%d:</key>
<value>$calendars:$locationguid%d:/$inbox:</value>
</substitution>
<!-- relative path to first location outbox-->
<substitution>
<key>$loutboxpath%d:</key>
<value>$calendars:$locationguid%d:/$outbox:</value>
</substitution>
<!-- relative path to first location principal resource-->
<substitution>
<key>$lprincipal%d:</key>
<value>$principals_resources:$locationid%d:/</value>
</substitution>
<substitution>
<key>$lprincipaluri%d:</key>
<value>$principals_uids:$locationguid%d:/</value>
</substitution>
<substitution>
<key>$lcuaddralt%d:</key>
<value>$lprincipaluri%d:</value>
</substitution>
<substitution>
<key>$lcuaddrurn%d:</key>
<value>urn:uuid:$locationguid%d:</value>
</substitution>
</repeat>
<!-- Group accounts -->
<repeat count="0">
<substitution>
<key>$groupid%d:</key>
<value>group%02d</value>
</substitution>
<!-- group guid-->
<substitution>
<key>$groupguid%d:</key>
<value>group%02d</value>
</substitution>
<!-- group name-->
<substitution>
<key>$groupname%d:</key>
<value>Group %02d</value>
</substitution>
<!-- relative path to first group principal resource-->
<substitution>
<key>$gprincipal%d:</key>
<value>$principals_resources:$groupid%d:/</value>
</substitution>
<substitution>
<key>$gprincipaluri%d:</key>
<value>$principals_uids:$groupguid%d:/</value>
</substitution>
<substitution>
<key>$gcuaddralt%d:</key>
<value>$gprincipaluri%d:</value>
</substitution>
<substitution>
<key>$gcuaddrurn%d:</key>
<value>urn:uuid:$groupguid%d:</value>
</substitution>
</repeat>
<!-- User with non-ascii name -->
<substitution>
<key>$i18nid:</key>
<value>i18nuser</value>
</substitution>
<!-- group guid-->
<substitution>
<key>$i18nguid:</key>
<value>i18nuser</value>
</substitution>
<!-- group name-->
<substitution>
<key>$i18nname:</key>
<value>まだ</value>
</substitution>
<!-- password -->
<substitution>
<key>$i18npswd:</key>
<value>i18nuser</value>
</substitution>
<!-- relative path to user calendar-->
<substitution>
<key>$i18ncalendarpath:</key>
<value>$calendars:$i18nguid:/$calendar:</value>
</substitution>
<substitution>
<key>$i18nemail:</key>
<value>$i18nid:@example.com</value>
</substitution>
<!-- CUAddrs -->
<substitution>
<key>$i18ncuaddr:</key>
<value>mailto:$i18nemail:</value>
</substitution>
<substitution>
<key>$i18ncuaddrurn:</key>
<value>urn:uuid:$i18nguid:</value>
</substitution>
<!-- relative path to disabled group principal resource-->
<substitution>
<key>$principaldisabled:</key>
<value>$principals_groups:disabledgroup/</value>
</substitution>
<substitution>
<key>$principaluridisabled:</key>
<value>$principals_uids:disabledgroup/</value>
</substitution>
<!-- calendar user address of disabled group-->
<substitution>
<key>$cuaddrdisabled:</key>
<value>$principals_uids:disabledgroup/</value>
</substitution>
<!-- calendar user address of second user-->
<substitution>
<key>$cuaddr2:</key>
<value>MAILTO:$email2:</value>
</substitution>
</substitutions>
</serverinfo>
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Tue, Jun 10, 6:05 PM (1 d, 15 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
197184
Default Alt Text
(35 KB)
Attached To
Mode
R5 irony
Attached
Detach File
Event Timeline
Log In to Comment