Package: calypso
Version: 1.4
Severity: wishlist

Hi,
attached patch adds minimal autopkgtest support via caldav-tester. Note
that in order for this to work we need caldav-tester (ITP #742999, about
to be uploaded) and the config dir patch posted to the ML recently.

I've only enabled some working tests so far so that we don't regress. I
hope to get around to make the get/put tests work too.
Cheers,
 -- Guido


-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-updates'), (500, 'unstable'), 
(1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.14.0-rc1+ (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages calypso depends on:
ii  git             1:1.9.0-1
ii  python          2.7.5-5
ii  python-daemon   1.5.5-1
ii  python-vobject  0.8.1c-4

calypso recommends no packages.

calypso suggests no packages.

-- no debconf information
>From bda7ed427047d377dc91d2dce837973859cef117 Mon Sep 17 00:00:00 2001
Message-Id: <bda7ed427047d377dc91d2dce837973859cef117.1396186929.git....@sigxcpu.org>
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <a...@sigxcpu.org>
Date: Sat, 29 Mar 2014 22:34:30 +0100
Subject: [PATCH] Add autopkgtest based on caldav-tester

This makes sure the server listens and processes events. This will need
more work to pass more parts of the testsuite.
---
 debian/control              |   1 +
 debian/tests/caldav         |  54 ++++
 debian/tests/control        |   3 +
 debian/tests/serverinfo.xml | 759 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 817 insertions(+)
 create mode 100755 debian/tests/caldav
 create mode 100644 debian/tests/control
 create mode 100644 debian/tests/serverinfo.xml

diff --git a/debian/control b/debian/control
index a4012a4..ed68a4d 100644
--- a/debian/control
+++ b/debian/control
@@ -6,6 +6,7 @@ Build-Depends: debhelper (>= 8.0.0), python (>= 2.7), python-setuptools, python-
 Standards-Version: 3.9.4
 Homepage: http://keithp.com/calypso
 X-Python-Version: >= 2.7
+XS-Testsuite: autopkgtest
 
 Package: calypso
 Architecture: all
diff --git a/debian/tests/caldav b/debian/tests/caldav
new file mode 100755
index 0000000..c4d78b1
--- /dev/null
+++ b/debian/tests/caldav
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+TESTS="\
+    CalDAV/delete.xml \
+    CalDAV/vtodos.xml \
+"
+
+set -e
+
+cleanup ()
+{
+   kill $(cat $WORKDIR/pid)
+   rm --preserve-root -rf $WORKDIR
+}
+
+WORKDIR=$(mktemp -d)
+trap cleanup 0 INT QUIT ABRT PIPE TERM
+
+export CALYPSO_CONFIG=$WORKDIR/config
+
+# Initial calendars
+CALENDARS="\
+           $WORKDIR/calendars/__uids__/user01/calendar/       \
+           $WORKDIR/calendars/__uids__/user01/tasks/          \
+          "
+
+for d in $CALENDARS; do
+  mkdir -p $d
+  git init $d
+done
+
+# config
+cat <<EOF > $WORKDIR/config
+[server]
+ssl=false
+
+[acl]
+type=htpasswd
+filename=$WORKDIR/passwd
+encryption=plain
+
+[storage]
+folder=$WORKDIR/
+EOF
+echo "user01:user01" > $WORKDIR/passwd
+
+# Run the server
+calypso -d -P $WORKDIR/pid
+sleep 2
+
+# Run the tests
+testcaldav -s $PWD/debian/tests/serverinfo.xml $TESTS
+
+echo "run: OK"
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..e78ddac
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,3 @@
+Tests: caldav
+Restrictions: isolation-container
+Depends: caldav-tester
diff --git a/debian/tests/serverinfo.xml b/debian/tests/serverinfo.xml
new file mode 100644
index 0000000..9378d76
--- /dev/null
+++ b/debian/tests/serverinfo.xml
@@ -0,0 +1,759 @@
+<?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>5233</nonsslport>
+	<sslport>8443</sslport>
+	<authtype>basic</authtype>
+	
+	<waitcount>120</waitcount>
+	<waitdelay>0.25</waitdelay>
+
+	<features>
+		<!--  Generic WebDAV extensions -->
+		<feature>COPY Method</feature>							<!-- COPY method -->
+		<feature>MOVE Method</feature>							<!-- MOVE method -->
+		
+		<feature>ctag</feature>							<!-- ctag extension -->
+		<feature>directory listing</feature> 			<!-- GET on collection -->
+
+		<!-- CalDAV specific extension -->
+		<feature>caldav</feature>					    <!-- Basic CalDAV feature enabler -->
+		<feature>no-duplicate-uids</feature>			<!-- duplicate UIDs in same home not supported -->
+
+		<!-- CardDAV specific extension -->
+		<feature>carddav</feature> 						<!-- Basic CardDAV feature enabler -->
+		<feature>default-addressbook</feature> 			<!-- Default address book behavior -->
+		<feature>shared-addressbooks</feature>			<!-- Shared address books extension -->
+		<!-- <feature>directory-gateway</feature> -->	<!-- Directory gateway extension -->
+
+	</features>
+
+	<substitutions>
+		<!-- 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 caldav root-->
+		<substitution>
+			<key>$root:</key>
+			<value>/</value>
+		</substitution>
+
+		<!-- 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>
+
+		<!-- primary polls-only calendar name-->
+		<substitution>
+			<key>$polls:</key>
+			<value>polls</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 addressbooks collection-->
+		<substitution>
+			<key>$addressbooks:</key>
+			<value>$root:addressbooks/</value>
+		</substitution>
+
+		<!-- relative path to record type addressbook 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>addressbook</value>
+		</substitution>
+
+		<!-- directory name -->
+		<substitution>
+			<key>$directory:</key>
+			<value>$root: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>$principals_users:$useradmin:/</value>
+		</substitution>
+		<substitution>
+			<key>$principaluri_admin:</key>
+			<value>$principals_uids:$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 admin user -->
+		<substitution>
+			<key>$pswdapprentice:</key>
+			<value>apprentice</value>
+		</substitution>
+
+		<!-- relative path to apprentice principal resource-->
+		<substitution>
+			<key>$principal_apprentice:</key>
+			<value>$principals_users:$userapprentice:/</value>
+		</substitution>
+		<substitution>
+			<key>$principaluri_apprentice:</key>
+			<value>$principals_uids:$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>
+
+		<!--  Forty user accounts -->
+		<repeat count="40">
+			<!-- user id -->
+			<substitution>
+				<key>$userid%d:</key>
+				<value>user%02d</value>
+			</substitution>
+			<!-- user guid -->
+			<substitution>
+				<key>$userguid%d:</key>
+				<value>user%02d</value>
+			</substitution>
+			<!-- user name -->
+			<substitution>
+				<key>$username%d:</key>
+				<value>User %02d</value>
+			</substitution>
+			<!-- user name URI encoded -->
+			<substitution>
+				<key>$username-encoded%d:</key>
+				<value>User%%20%02d</value>
+			</substitution>
+			<!-- first name -->
+			<substitution>
+				<key>$firstname%d:</key>
+				<value>User</value>
+			</substitution>
+			<!-- last name -->
+			<substitution>
+				<key>$lastname%d:</key>
+				<value>%02d</value>
+			</substitution>
+			<!-- password -->
+			<substitution>
+				<key>$pswd%d:</key>
+				<value>user%02d</value>
+			</substitution>
+			<!-- relative path to user principal resource-->
+			<substitution>
+				<key>$principal%d:</key>
+				<value>$principals_users:$userid%d:/</value>
+			</substitution>
+			<substitution>
+				<key>$principaluri%d:</key>
+				<value>$principals_uids:$userguid%d:/</value>
+			</substitution>
+			<substitution>
+				<key>$principal%dnoslash:</key>
+				<value>$principals_users:$userid%d:</value>
+			</substitution>
+
+			<!-- relative path to user calendar home-->
+			<substitution>
+				<key>$calendarhome%d:</key>
+				<value>$calendars_uids:$userguid%d:</value>
+			</substitution>
+			<!-- relative path to user alternate calendar home-->
+			<substitution>
+				<key>$calendarhomealt%d:</key>
+				<value>$calendars_users:$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 polls calendar-->
+			<substitution>
+				<key>$pollspath%d:</key>
+				<value>$calendarhome%d:/$polls:</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:@example.com</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_uids:$userguid%d:</value>
+			</substitution>
+			<!-- relative path to user addressbook-->
+			<substitution>
+				<key>$addressbookpath%d:</key>
+				<value>$addressbookhome%d:/$addressbook:</value>
+			</substitution>
+		</repeat>
+
+		<!--  Ten public accounts -->
+		<repeat count="10">
+			<!-- 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_uids:$publicuserguid%d:</value>
+			</substitution>
+			<!-- relative path to user calendar-->
+			<substitution>
+				<key>$publiccalendarpath%d:</key>
+				<value>$calendars_uids:$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>
+
+		<!--  Twenty resource accounts -->
+		<repeat count="20">
+			<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_uids:$resourceguid%d:</value>
+			</substitution>
+			<!-- relative path to first resource calendar home-->
+			<substitution>
+				<key>$rcalendarpath%d:</key>
+				<value>$calendars_uids:$resourceguid%d:/$calendar:</value>
+			</substitution>
+			<!-- relative path to first resource inbox-->
+			<substitution>
+				<key>$rinboxpath%d:</key>
+				<value>$calendars_uids:$resourceguid%d:/$inbox:</value>
+			</substitution>
+			<!-- relative path to first resource outbox-->
+			<substitution>
+				<key>$routboxpath%d:</key>
+				<value>$calendars_uids:$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>
+
+		<!--  Ten Location accounts -->
+		<repeat count="10">
+			<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_uids:$locationguid%d:</value>
+			</substitution>
+			<!-- relative path to first location calendar home-->
+			<substitution>
+				<key>$lcalendarpath%d:</key>
+				<value>$calendars_uids:$locationguid%d:/$calendar:</value>
+			</substitution>
+			<!-- relative path to first location inbox-->
+			<substitution>
+				<key>$linboxpath%d:</key>
+				<value>$calendars_uids:$locationguid%d:/$inbox:</value>
+			</substitution>
+			<!-- relative path to first location outbox-->
+			<substitution>
+				<key>$loutboxpath%d:</key>
+				<value>$calendars_uids:$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>
+
+
+		<!--  Ten Group accounts -->
+		<repeat count="10">
+			<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_uids:$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>
+
+		<!--  Override some of the above definitions for special cases -->
+
+		<!-- calendar user address of second user-->
+		<substitution>
+			<key>$cuaddr2:</key>
+			<value>MAILTO:$email2:</value>
+		</substitution>
+
+	</substitutions>
+</serverinfo>
-- 
1.9.0

Reply via email to