diff --git a/.travis.yml b/.travis.yml
index 5e22defc8a0d..fffd5c47381c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -60,6 +60,10 @@ matrix:
env: DB=sqlite;TC=carddav
- php: 5.6
env: DB=sqlite;TC=caldav
+ - php: 5.6
+ env: DB=sqlite;TC=caldav-old-endpoint
+ - php: 5.6
+ env: DB=sqlite;TC=carddav-old-endpoint
- php: 5.6
env: DB=pgsql;TC=selenium;TEST_DAV=0
- php: 5.6
diff --git a/apps/dav/appinfo/v1/caldav.php b/apps/dav/appinfo/v1/caldav.php
index 1059b7f96daf..1209a25c76e8 100644
--- a/apps/dav/appinfo/v1/caldav.php
+++ b/apps/dav/appinfo/v1/caldav.php
@@ -48,7 +48,7 @@
$db = \OC::$server->getDatabaseConnection();
$config = \OC::$server->getConfig();
$random = \OC::$server->getSecureRandom();
-$calDavBackend = new CalDavBackend($db, $principalBackend, $config, $random);
+$calDavBackend = new CalDavBackend($db, $principalBackend, $config, $random, true);
$debugging = \OC::$server->getConfig()->getSystemValue('debug', false);
@@ -79,8 +79,9 @@
$server->addPlugin(new Sabre\DAV\Browser\Plugin());
}
+$server->addPlugin(new \Sabre\DAV\Sync\Plugin());
$server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
-$server->addPlugin(new \Sabre\CalDAV\Schedule\Plugin());
+$server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin());
$server->addPlugin(new OCA\DAV\CalDAV\Schedule\IMipPlugin( \OC::$server->getMailer(), \OC::$server->getLogger()));
$server->addPlugin(new ExceptionLoggerPlugin('caldav', \OC::$server->getLogger()));
diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php
index d68be5e60071..8f2d09bea694 100644
--- a/apps/dav/appinfo/v1/carddav.php
+++ b/apps/dav/appinfo/v1/carddav.php
@@ -46,7 +46,7 @@
'principals/'
);
$db = \OC::$server->getDatabaseConnection();
-$cardDavBackend = new CardDavBackend($db, $principalBackend);
+$cardDavBackend = new CardDavBackend($db, $principalBackend, null, true);
$debugging = \OC::$server->getConfig()->getSystemValue('debug', false);
@@ -76,6 +76,7 @@
$server->addPlugin(new Sabre\DAV\Browser\Plugin());
}
+$server->addPlugin(new Sabre\DAV\Sync\Plugin());
$server->addPlugin(new \Sabre\CardDAV\VCFExportPlugin());
$server->addPlugin(new \OCA\DAV\CardDAV\ImageExportPlugin(\OC::$server->getLogger()));
$server->addPlugin(new ExceptionLoggerPlugin('carddav', \OC::$server->getLogger()));
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index 2e5d287661a4..41f5cd1cecf9 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -24,6 +24,7 @@
namespace OCA\DAV\CalDAV;
+use Doctrine\DBAL\Connection;
use OCA\DAV\DAV\Sharing\IShareable;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCA\DAV\Connector\Sabre\Principal;
@@ -116,6 +117,8 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
/** @var ISecureRandom */
private $random;
+ /** @var bool */
+ private $legacyMode;
/**
* CalDavBackend constructor.
@@ -127,12 +130,14 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
public function __construct(IDBConnection $db,
Principal $principalBackend,
IConfig $config,
- ISecureRandom $random) {
+ ISecureRandom $random,
+ $legacyMode = false) {
$this->db = $db;
$this->principalBackend = $principalBackend;
$this->sharingBackend = new Backend($this->db, $principalBackend, 'calendar');
$this->config = $config;
$this->random = $random;
+ $this->legacyMode = $legacyMode;
}
/**
@@ -189,7 +194,7 @@ function getCalendarsForUser($principalUri) {
$calendar = [
'id' => $row['id'],
'uri' => $row['uri'],
- 'principaluri' => $this->convertPrincipal($row['principaluri'], false),
+ 'principaluri' => $this->convertPrincipal($row['principaluri']),
'{' . Plugin::NS_CALENDARSERVER . '}getctag' => 'http://sabre.io/ns/sync/' . ($row['synctoken']?$row['synctoken']:'0'),
'{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0',
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet($components),
@@ -226,7 +231,7 @@ function getCalendarsForUser($principalUri) {
->where($query->expr()->in('s.principaluri', $query->createParameter('principaluri')))
->andWhere($query->expr()->eq('s.type', $query->createParameter('type')))
->setParameter('type', 'calendar')
- ->setParameter('principaluri', $principals, \Doctrine\DBAL\Connection::PARAM_STR_ARRAY)
+ ->setParameter('principaluri', $principals, Connection::PARAM_STR_ARRAY)
->execute();
while($row = $result->fetch()) {
@@ -240,12 +245,12 @@ function getCalendarsForUser($principalUri) {
$calendar = [
'id' => $row['id'],
'uri' => $uri,
- 'principaluri' => $principalUri,
+ 'principaluri' => $this->convertPrincipal($principalUri),
'{' . Plugin::NS_CALENDARSERVER . '}getctag' => 'http://sabre.io/ns/sync/' . ($row['synctoken']?$row['synctoken']:'0'),
'{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0',
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet($components),
'{' . Plugin::NS_CALDAV . '}schedule-calendar-transp' => new ScheduleCalendarTransp($row['transparent']?'transparent':'opaque'),
- '{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}owner-principal' => $row['principaluri'],
+ '{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}owner-principal' => $this->convertPrincipal($row['principaluri']),
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}read-only' => (int)$row['access'] === Backend::ACCESS_READ,
];
@@ -290,7 +295,7 @@ public function getUsersOwnCalendars($principalUri) {
$calendar = [
'id' => $row['id'],
'uri' => $row['uri'],
- 'principaluri' => $this->convertPrincipal($row['principaluri'], false),
+ 'principaluri' => $this->convertPrincipal($row['principaluri']),
'{' . Plugin::NS_CALENDARSERVER . '}getctag' => 'http://sabre.io/ns/sync/' . ($row['synctoken']?$row['synctoken']:'0'),
'{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0',
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet($components),
@@ -343,12 +348,12 @@ public function getPublicCalendars() {
$calendar = [
'id' => $row['id'],
'uri' => $row['publicuri'],
- 'principaluri' => $row['principaluri'],
+ 'principaluri' => $this->convertPrincipal($row['principaluri']),
'{' . Plugin::NS_CALENDARSERVER . '}getctag' => 'http://sabre.io/ns/sync/' . ($row['synctoken']?$row['synctoken']:'0'),
'{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0',
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet($components),
'{' . Plugin::NS_CALDAV . '}schedule-calendar-transp' => new ScheduleCalendarTransp($row['transparent']?'transparent':'opaque'),
- '{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}owner-principal' => $row['principaluri'],
+ '{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}owner-principal' => $this->convertPrincipal($row['principaluri']),
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}read-only' => (int)$row['access'] === Backend::ACCESS_READ,
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}public' => (int)$row['access'] === self::ACCESS_PUBLIC,
];
@@ -407,12 +412,12 @@ public function getPublicCalendar($uri) {
$calendar = [
'id' => $row['id'],
'uri' => $row['publicuri'],
- 'principaluri' => $row['principaluri'],
+ 'principaluri' => $this->convertPrincipal($row['principaluri']),
'{' . Plugin::NS_CALENDARSERVER . '}getctag' => 'http://sabre.io/ns/sync/' . ($row['synctoken']?$row['synctoken']:'0'),
'{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0',
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet($components),
'{' . Plugin::NS_CALDAV . '}schedule-calendar-transp' => new ScheduleCalendarTransp($row['transparent']?'transparent':'opaque'),
- '{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}owner-principal' => $row['principaluri'],
+ '{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}owner-principal' => $this->convertPrincipal($row['principaluri']),
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}read-only' => (int)$row['access'] === Backend::ACCESS_READ,
'{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}public' => (int)$row['access'] === self::ACCESS_PUBLIC,
];
@@ -461,7 +466,7 @@ public function getCalendarByUri($principal, $uri) {
$calendar = [
'id' => $row['id'],
'uri' => $row['uri'],
- 'principaluri' => $row['principaluri'],
+ 'principaluri' => $this->convertPrincipal($row['principaluri']),
'{' . Plugin::NS_CALENDARSERVER . '}getctag' => 'http://sabre.io/ns/sync/' . ($row['synctoken']?$row['synctoken']:'0'),
'{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0',
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet($components),
@@ -505,7 +510,7 @@ public function getCalendarById($calendarId) {
$calendar = [
'id' => $row['id'],
'uri' => $row['uri'],
- 'principaluri' => $row['principaluri'],
+ 'principaluri' => $this->convertPrincipal($row['principaluri']),
'{' . Plugin::NS_CALENDARSERVER . '}getctag' => 'http://sabre.io/ns/sync/' . ($row['synctoken']?$row['synctoken']:'0'),
'{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0',
'{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet($components),
@@ -529,8 +534,10 @@ public function getCalendarById($calendarId) {
* @param string $calendarUri
* @param array $properties
* @return int
+ * @throws DAV\Exception
*/
function createCalendar($principalUri, $calendarUri, array $properties) {
+ $principalUri = $this->convertPrincipal($principalUri, true);
$values = [
'principaluri' => $principalUri,
'uri' => $calendarUri,
@@ -580,6 +587,7 @@ function createCalendar($principalUri, $calendarUri, array $properties) {
*
* Read the PropPatch documentation for more info and examples.
*
+ * @param mixed $calendarId
* @param PropPatch $propPatch
* @return void
*/
@@ -639,11 +647,11 @@ function deleteCalendar($calendarId) {
/**
* Delete all of an user's shares
*
- * @param string $principaluri
+ * @param string $principalUri
* @return void
*/
- function deleteAllSharesForUser($principaluri) {
- $this->sharingBackend->deleteAllSharesByUser($principaluri);
+ function deleteAllSharesForUser($principalUri) {
+ $this->sharingBackend->deleteAllSharesByUser($principalUri);
}
/**
@@ -1657,10 +1665,11 @@ public function applyShareAcl($resourceId, $acl) {
return $this->sharingBackend->applyShareAcl($resourceId, $acl);
}
- private function convertPrincipal($principalUri, $toV2) {
+ private function convertPrincipal($principalUri, $toV2 = null) {
if ($this->principalBackend->getPrincipalPrefix() === 'principals') {
list(, $name) = URLUtil::splitPath($principalUri);
- if ($toV2 === true) {
+ $toV2 = $toV2 === null ? !$this->legacyMode : $toV2;
+ if ($toV2) {
return "principals/users/$name";
}
return "principals/$name";
diff --git a/apps/dav/lib/CalDAV/Schedule/Plugin.php b/apps/dav/lib/CalDAV/Schedule/Plugin.php
new file mode 100644
index 000000000000..b5e4ce8c90bd
--- /dev/null
+++ b/apps/dav/lib/CalDAV/Schedule/Plugin.php
@@ -0,0 +1,37 @@
+
+ *
+ * @copyright Copyright (c) 2017, ownCloud GmbH
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see
+ *
+ */
+
+
+namespace OCA\DAV\CalDAV\Schedule;
+
+
+class Plugin extends \Sabre\CalDAV\Schedule\Plugin {
+
+ public function getAddressesForPrincipal($principal) {
+ $result = parent::getAddressesForPrincipal($principal);
+ if ($result === null) {
+ return [];
+ }
+
+ return $result;
+ }
+
+}
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index fdf82ca74dd7..e3987f172fc1 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -66,6 +66,8 @@ class CardDavBackend implements BackendInterface, SyncSupport {
/** @var EventDispatcherInterface */
private $dispatcher;
+ /** @var bool */
+ private $legacyMode;
/**
* CardDavBackend constructor.
@@ -76,11 +78,13 @@ class CardDavBackend implements BackendInterface, SyncSupport {
*/
public function __construct(IDBConnection $db,
Principal $principalBackend,
- EventDispatcherInterface $dispatcher = null) {
+ EventDispatcherInterface $dispatcher = null,
+ $legacyMode = false) {
$this->db = $db;
$this->principalBackend = $principalBackend;
$this->dispatcher = $dispatcher;
$this->sharingBackend = new Backend($this->db, $principalBackend, 'addressbook');
+ $this->legacyMode = $legacyMode;
}
/**
@@ -114,7 +118,7 @@ function getUsersOwnAddressBooks($principalUri) {
$addressBooks[$row['id']] = [
'id' => $row['id'],
'uri' => $row['uri'],
- 'principaluri' => $this->convertPrincipal($row['principaluri'], false),
+ 'principaluri' => $this->convertPrincipal($row['principaluri']),
'{DAV:}displayname' => $row['displayname'],
'{' . Plugin::NS_CARDDAV . '}addressbook-description' => $row['description'],
'{http://calendarserver.org/ns/}getctag' => $row['synctoken'],
@@ -999,10 +1003,11 @@ public function applyShareAcl($addressBookId, $acl) {
return $this->sharingBackend->applyShareAcl($addressBookId, $acl);
}
- private function convertPrincipal($principalUri, $toV2) {
+ private function convertPrincipal($principalUri, $toV2 = null) {
if ($this->principalBackend->getPrincipalPrefix() === 'principals') {
list(, $name) = URLUtil::splitPath($principalUri);
- if ($toV2 === true) {
+ $toV2 = $toV2 === null ? !$this->legacyMode : $toV2;
+ if ($toV2) {
return "principals/users/$name";
}
return "principals/$name";
diff --git a/apps/dav/lib/Connector/LegacyDAVACL.php b/apps/dav/lib/Connector/LegacyDAVACL.php
index b4a6f0f5a28a..b7e1fd3c456f 100644
--- a/apps/dav/lib/Connector/LegacyDAVACL.php
+++ b/apps/dav/lib/Connector/LegacyDAVACL.php
@@ -32,24 +32,9 @@
class LegacyDAVACL extends DavAclPlugin {
/**
- * Converts the v1 principal `principal/` to the new v2
- * `principal/users/` which is required for permission checks
- *
* @inheritdoc
*/
- function getCurrentUserPrincipal() {
- $principalV1 = parent::getCurrentUserPrincipal();
- if (is_null($principalV1)) {
- return $principalV1;
- }
- return $this->convertPrincipal($principalV1, true);
- }
-
-
- /**
- * @inheritdoc
- */
- function getCurrentUserPrincipals() {
+ public function getCurrentUserPrincipals() {
$principalV2 = $this->getCurrentUserPrincipal();
if (is_null($principalV2)) return [];
@@ -72,7 +57,7 @@ private function convertPrincipal($principal, $toV2) {
return "principals/$name";
}
- function propFind(PropFind $propFind, INode $node) {
+ public function propFind(PropFind $propFind, INode $node) {
/* Overload current-user-principal */
$propFind->handle('{DAV:}current-user-principal', function () {
if ($url = parent::getCurrentUserPrincipal()) {
@@ -81,6 +66,6 @@ function propFind(PropFind $propFind, INode $node) {
return new Principal(Principal::UNAUTHENTICATED);
}
});
- parent::propFind($propFind, $node);
+ return parent::propFind($propFind, $node);
}
}
diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php
index 7c51eeb36aa7..9f7761033397 100644
--- a/apps/dav/lib/Server.php
+++ b/apps/dav/lib/Server.php
@@ -111,7 +111,7 @@ public function __construct(IRequest $request, $baseUri) {
// calendar plugins
$this->server->addPlugin(new \OCA\DAV\CalDAV\Plugin());
$this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
- $this->server->addPlugin(new \Sabre\CalDAV\Schedule\Plugin());
+ $this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin());
$this->server->addPlugin(new IMipPlugin($mailer, $logger));
$this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
$this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
diff --git a/apps/dav/tests/travis/caldav-old-endpoint/install.sh b/apps/dav/tests/travis/caldav-old-endpoint/install.sh
new file mode 100644
index 000000000000..e0ac30c9e46b
--- /dev/null
+++ b/apps/dav/tests/travis/caldav-old-endpoint/install.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+SCRIPT=`realpath $0`
+SCRIPTPATH=`dirname $SCRIPT`
+
+
+cd "$SCRIPTPATH"
+if [ ! -f CalDAVTester/testcaldav.py ]; then
+ git clone https://github.com/apple/ccs-caldavtester.git CalDAVTester
+fi
+if [ ! -f pycalendar/setup.py ]; then
+ git clone https://github.com/apple/ccs-pycalendar.git pycalendar
+fi
+
+# create test user
+cd "$SCRIPTPATH/../../../../../"
+OC_PASS=user01 php occ user:add --password-from-env user01
+php occ dav:create-calendar user01 calendar
+php occ dav:create-calendar user01 shared
+OC_PASS=user02 php occ user:add --password-from-env user02
+php occ dav:create-calendar user02 calendar
+cd "$SCRIPTPATH/../../../../../"
diff --git a/apps/dav/tests/travis/caldav-old-endpoint/script.sh b/apps/dav/tests/travis/caldav-old-endpoint/script.sh
new file mode 100644
index 000000000000..a40a4d6cec94
--- /dev/null
+++ b/apps/dav/tests/travis/caldav-old-endpoint/script.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+SCRIPT=`realpath $0`
+SCRIPTPATH=`dirname $SCRIPT`
+
+# Move the endpoint to the serverinfo file
+rm "$SCRIPTPATH/../caldavtest/serverinfo.xml"
+cp "$SCRIPTPATH/../caldavtest/serverinfo-caldav-old-endpoint.xml" "$SCRIPTPATH/../caldavtest/serverinfo.xml"
+
+# start the server
+php -S 127.0.0.1:8889 -t "$SCRIPTPATH/../../../../.." &
+
+sleep 30
+
+# run the tests
+cd "$SCRIPTPATH/CalDAVTester"
+PYTHONPATH="$SCRIPTPATH/pycalendar/src" python testcaldav.py --print-details-onfail --basedir "$SCRIPTPATH/../caldavtest/" -o cdt.txt \
+ "CalDAV/current-user-principal.xml" \
+ "CalDAV/sync-report.xml"
+
+RESULT=$?
+
+tail "$SCRIPTPATH/../../../../../data/owncloud.log"
+
+exit $RESULT
diff --git a/apps/dav/tests/travis/caldav/script.sh b/apps/dav/tests/travis/caldav/script.sh
index 7259372567cd..d4d453e551e8 100644
--- a/apps/dav/tests/travis/caldav/script.sh
+++ b/apps/dav/tests/travis/caldav/script.sh
@@ -3,7 +3,7 @@ SCRIPT=`realpath $0`
SCRIPTPATH=`dirname $SCRIPT`
# start the server
-php -S 127.0.0.1:8888 -t "$SCRIPTPATH/../../../../.." &
+php -S 127.0.0.1:8889 -t "$SCRIPTPATH/../../../../.." &
sleep 30
@@ -16,6 +16,6 @@ PYTHONPATH="$SCRIPTPATH/pycalendar/src" python testcaldav.py --print-details-onf
RESULT=$?
-tail "$/../../../../../data-autotest/owncloud.log"
+tail "$SCRIPTPATH/../../../../../data/owncloud.log"
exit $RESULT
diff --git a/apps/dav/tests/travis/caldavtest/serverinfo-caldav-old-endpoint.xml b/apps/dav/tests/travis/caldavtest/serverinfo-caldav-old-endpoint.xml
new file mode 100644
index 000000000000..fda243953acf
--- /dev/null
+++ b/apps/dav/tests/travis/caldavtest/serverinfo-caldav-old-endpoint.xml
@@ -0,0 +1,849 @@
+
+
+
+
+
+
+
+ localhost
+ 8889
+ basic
+
+
+ 120
+ 0.25
+ 30
+
+
+
+ COPY Method
+ MOVE Method
+ Extended MKCOL
+
+
+ ACL Method
+ acl-principal-prop-set REPORT
+ principal-match REPORT
+ principal-property-search REPORT
+ principal-search-property-set REPORT
+ calendarserver-principal-search REPORT
+
+ add-member
+
+ brief
+ bulk-post
+ ctag
+ current-user-principal
+ directory listing
+ extended-principal-search
+ expand-property
+ only-proxy-groups
+ limits
+ own-root
+ prefer
+ prefer-minimal
+ prefer-representation
+ prefer-noroot
+ quota
+
+ resource-id
+ sync-report
+
+
+ sync-report-config-token
+ well-known
+
+
+
+
+ json-data
+
+
+ control-api
+
+
+ caldav
+ attachments-collection
+ auto-accept
+ auto-accept-modes
+ client-fix-TRANSP
+
+ default-alarms
+ EMAIL parameter
+ extended-freebusy
+ freebusy-url
+ group-attendee-expansion
+ implicit-scheduling
+ location-resource-tracking
+ managed-attachments
+ maskuid
+ no-duplicate-uids
+ partstat-timestamp
+
+ private-comments
+ private-events
+ proxy
+
+ recurrence-splitting
+ remove-duplicate-alarms
+ query-extended
+ shared-calendars
+ share-calendars-to-groups
+ schedule-changes
+ split-calendars
+ supported-component-sets
+ supported-component-sets-one
+ timerange-low-limit
+ timerange-high-limit
+ timezones-by-reference
+ timezone-service
+ timezone-std-service
+
+ travel-time-busy
+ vavailability
+
+ webcal
+
+
+ carddav
+ default-addressbook
+ shared-addressbooks
+ shared-addressbook-groups
+ directory-gateway
+
+
+
+
+
+
+ $multistatus-response-prefix:
+ /{DAV:}multistatus/{DAV:}response
+
+
+ $multistatus-href-prefix:
+ /{DAV:}multistatus/{DAV:}response/{DAV:}href
+
+
+ $verify-response-prefix:
+ {DAV:}response/{DAV:}propstat/{DAV:}prop
+
+
+ $verify-property-prefix:
+ /{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop
+
+
+ $verify-bad-response:
+ /{DAV:}multistatus/{DAV:}response/{DAV:}status
+
+
+ $verify-error-response:
+ /{DAV:}multistatus/{DAV:}response/{DAV:}error
+
+
+ $CALDAV:
+ urn:ietf:params:xml:ns:caldav
+
+
+ $CARDDAV:
+ urn:ietf:params:xml:ns:carddav
+
+
+ $CS:
+ http://calendarserver.org/ns/
+
+
+
+
+
+
+
+ $root:
+ /remote.php/caldav/
+
+
+
+
+ $principalcollection:
+ $root:principals/
+
+
+
+
+ $uidstype:
+ __uids__
+
+
+ $groupstype:
+ groups
+
+
+ $locationstype:
+ locations
+
+
+ $resourcestype:
+ resources
+
+
+
+
+ $principals_uids:
+ $principalcollection:$uidstype:/
+
+
+ $principals_users:
+ $principalcollection:
+
+
+ $principals_groups:
+ $principalcollection:$groupstype:/
+
+
+ $principals_resources:
+ $principalcollection:$resourcestype:/
+
+
+ $principals_locations:
+ $principalcollection:$locationstype:/
+
+
+
+
+ $calendars:
+ $root:calendars/
+
+
+
+
+ $calendars_uids:
+ $calendars:$uidstype:/
+
+
+ $calendars_users:
+ $calendars:
+
+
+ $calendars_resources:
+ $calendars:$resourcestype:/
+
+
+ $calendars_locations:
+ $calendars:$locationstype:/
+
+
+
+
+ $calendar:
+ calendar
+
+
+
+
+ $tasks:
+ tasks
+
+
+
+
+ $polls:
+ polls
+
+
+
+
+ $inbox:
+ inbox
+
+
+
+
+ $outbox:
+ outbox
+
+
+
+
+ $dropbox:
+ dropbox
+
+
+
+
+ $attachments:
+ dropbox
+
+
+
+
+ $notification:
+ notification
+
+
+
+
+ $freebusy:
+ freebusy
+
+
+
+
+ $calendar_home_items_initial_sync:
+ [-,$calendar:/,$tasks:/,$inbox:/,$outbox:/,$freebusy:,$notification:/]
+
+
+
+
+ $calendar_sync_extra_items:
+ [-]
+
+
+
+
+ $calendar_sync_extra_count:
+ 1
+
+
+
+
+ $servertoserver:
+ $root:inbox
+
+
+
+
+ $timezoneservice:
+ $root:timezones
+
+
+
+
+ $timezonestdservice:
+ $root:stdtimezones
+
+
+
+
+ $addressbooks:
+ $root:addressbooks/
+
+
+
+
+ $addressbooks_uids:
+ $addressbooks:$uidstype:/
+
+
+ $addressbooks_users:
+ $addressbooks:
+
+
+
+
+ $addressbook:
+ addressbook
+
+
+
+
+ $directory:
+ $root:directory/
+
+
+
+
+ $add-member:
+ ;add-member
+
+
+
+
+ $useradmin:
+ admin
+
+
+
+ $useradminguid:
+ 0C8BDE62-E600-4696-83D3-8B5ECABDFD2E
+
+
+
+ $pswdadmin:
+ admin
+
+
+
+
+ $principal_admin:
+ $principals_users:$useradmin:/
+
+
+ $principaluri_admin:
+ $principals_uids:$useradminguid:/
+
+
+
+
+ $userapprentice:
+ apprentice
+
+
+
+ $userapprenticeguid:
+ 29B6C503-11DF-43EC-8CCA-40C7003149CE
+
+
+
+ $pswdapprentice:
+ apprentice
+
+
+
+
+ $principal_apprentice:
+ $principals_users:$userapprentice:/
+
+
+ $principaluri_apprentice:
+ $principals_uids:$userapprenticeguid:/
+
+
+
+
+ $userproxy:
+ superuser
+
+
+
+ $pswdproxy:
+ superuser
+
+
+
+
+
+
+ $userid%d:
+ user%02d
+
+
+
+ $userguid%d:
+ 10000000-0000-0000-0000-000000000%03d
+
+
+
+ $username%d:
+ User %02d
+
+
+
+ $username-encoded%d:
+ User%%20%02d
+
+
+
+ $firstname%d:
+ User
+
+
+
+ $lastname%d:
+ %02d
+
+
+
+ $pswd%d:
+ user%02d
+
+
+
+ $principal%d:
+ $principals_users:$userid%d:/
+
+
+ $principaluri%d:
+ $principals_users:$userid%d:/
+
+
+ $principal%dnoslash:
+ $principals_users:$userid%d:
+
+
+
+
+ $calendarhome%d:
+ $calendars:$userid%d:
+
+
+
+ $calendarhomealt%d:
+ $calendars_users:$userid%d:
+
+
+
+ $calendarpath%d:
+ $calendarhome%d:/$calendar:
+
+
+
+ $calendarpathalt%d:
+ $calendarhomealt%d:/$calendar:
+
+
+
+ $taskspath%d:
+ $calendarhome%d:/$tasks:
+
+
+
+ $pollspath%d:
+ $calendarhome%d:/$polls:
+
+
+
+ $inboxpath%d:
+ $calendarhome%d:/$inbox:
+
+
+
+ $outboxpath%d:
+ $calendarhome%d:/$outbox:
+
+
+
+ $dropboxpath%d:
+ $calendarhome%d:/$dropbox:
+
+
+
+ $notificationpath%d:
+ $calendarhome%d:/$notification:
+
+
+
+ $freebusypath%d:
+ $calendarhome%d:/$freebusy:
+
+
+ $email%d:
+ $userid%d:@example.com
+
+
+
+ $cuaddr%d:
+ mailto:$email%d:
+
+
+ $cuaddralt%d:
+ $cuaddr%d:
+
+
+ $cuaddraltnoslash%d:
+ $cuaddr%d:
+
+
+ $cuaddrurn%d:
+ urn:x-uid:$userguid%d:
+
+
+
+
+ $addressbookhome%d:
+ $addressbooks:users/$userid%d:
+
+
+
+ $addressbookpath%d:
+ $addressbookhome%d:/$addressbook:
+
+
+
+
+
+
+
+ $publicuserid%d:
+ public%02d
+
+
+
+ $publicuserguid%d:
+ 50000000-0000-0000-0000-0000000000%02d
+
+
+
+ $publicusername%d:
+ Public %02d
+
+
+
+ $publicpswd%d:
+ public%02d
+
+
+
+ $publicprincipal%d:
+ $principals_users:$publicuserid%d:/
+
+
+ $publicprincipaluri%d:
+ $principals_uids:$publicuserguid%d:/
+
+
+
+ $publiccalendarhome%d:
+ $calendars_uids:$publicuserguid%d:
+
+
+
+ $publiccalendarpath%d:
+ $calendars_uids:$publicuserguid%d:/$calendar:
+
+
+ $publicemail%d:
+ $publicuserid%d:@example.com
+
+
+
+ $publiccuaddr%d:
+ mailto:$publicemail%d:
+
+
+ $publiccuaddralt%d:
+ $publiccuaddr%d:
+
+
+ $publiccuaddrurn%d:
+ urn:x-uid:$publicuserguid%d:
+
+
+
+
+
+
+ $resourceid%d:
+ resource%02d
+
+
+
+ $resourceguid%d:
+ 40000000-0000-0000-0000-000000000%03d
+
+
+
+ $resourcename%d:
+ Resource %02d
+
+
+
+ $rcalendarhome%d:
+ $calendars_uids:$resourceguid%d:
+
+
+
+ $rcalendarpath%d:
+ $calendars_uids:$resourceguid%d:/$calendar:
+
+
+
+ $rinboxpath%d:
+ $calendars_uids:$resourceguid%d:/$inbox:
+
+
+
+ $routboxpath%d:
+ $calendars_uids:$resourceguid%d:/$outbox:
+
+
+
+ $rprincipal%d:
+ $principals_resources:$resourceid%d:/
+
+
+ $rprincipaluri%d:
+ $principals_uids:$resourceguid%d:/
+
+
+ $rcuaddralt%d:
+ $rcuaddrurn%d:
+
+
+ $rcuaddrurn%d:
+ urn:x-uid:$resourceguid%d:
+
+
+
+
+
+
+ $locationid%d:
+ location%02d
+
+
+
+ $locationguid%d:
+ 30000000-0000-0000-0000-000000000%03d
+
+
+
+ $locationname%d:
+ Location %02d
+
+
+
+ $lcalendarhome%d:
+ $calendars_uids:$locationguid%d:
+
+
+
+ $lcalendarpath%d:
+ $calendars_uids:$locationguid%d:/$calendar:
+
+
+
+ $linboxpath%d:
+ $calendars_uids:$locationguid%d:/$inbox:
+
+
+
+ $loutboxpath%d:
+ $calendars_uids:$locationguid%d:/$outbox:
+
+
+
+ $lprincipal%d:
+ $principals_resources:$locationid%d:/
+
+
+ $lprincipaluri%d:
+ $principals_uids:$locationguid%d:/
+
+
+ $lcuaddralt%d:
+ $lprincipaluri%d:
+
+
+ $lcuaddrurn%d:
+ urn:x-uid:$locationguid%d:
+
+
+
+
+
+
+
+ $groupid%d:
+ group%02d
+
+
+
+ $groupguid%d:
+ 20000000-0000-0000-0000-000000000%03d
+
+
+
+ $groupname%d:
+ Group %02d
+
+
+
+ $gprincipal%d:
+ $principals_resources:$groupid%d:/
+
+
+ $gprincipaluri%d:
+ $principals_uids:$groupguid%d:/
+
+
+ $gemail%d:
+ $groupid%d:@example.com
+
+
+ $gcuaddralt%d:
+ $gprincipaluri%d:
+
+
+ $gcuaddrurn%d:
+ urn:x-uid:$groupguid%d:
+
+
+
+
+
+ $i18nid:
+ i18nuser
+
+
+
+ $i18nguid:
+ 860B3EE9-6D7C-4296-9639-E6B998074A78
+
+
+
+ $i18nname:
+ まだ
+
+
+
+ $i18npswd:
+ i18nuser
+
+
+
+ $i18ncalendarpath:
+ $calendars_uids:$i18nguid:/$calendar:
+
+
+ $i18nemail:
+ $i18nid:@example.com
+
+
+
+ $i18ncuaddr:
+ mailto:$i18nemail:
+
+
+ $i18ncuaddrurn:
+ urn:x-uid:$i18nguid:
+
+
+
+
+ $principaldisabled:
+ $principals_groups:disabledgroup/
+
+
+ $principaluridisabled:
+ $principals_uids:disabledgroup/
+
+
+
+ $cuaddrdisabled:
+ $principals_uids:disabledgroup/
+
+
+
+
+
+
+ $cuaddr2:
+ MAILTO:$email2:
+
+
+
+
diff --git a/apps/dav/tests/travis/caldavtest/serverinfo-carddav-old-endpoint.xml b/apps/dav/tests/travis/caldavtest/serverinfo-carddav-old-endpoint.xml
new file mode 100644
index 000000000000..9e3cfa7090a1
--- /dev/null
+++ b/apps/dav/tests/travis/caldavtest/serverinfo-carddav-old-endpoint.xml
@@ -0,0 +1,849 @@
+
+
+
+
+
+
+
+ localhost
+ 8889
+ basic
+
+
+ 120
+ 0.25
+ 30
+
+
+
+ COPY Method
+ MOVE Method
+ Extended MKCOL
+
+
+ ACL Method
+ acl-principal-prop-set REPORT
+ principal-match REPORT
+ principal-property-search REPORT
+ principal-search-property-set REPORT
+ calendarserver-principal-search REPORT
+
+ add-member
+
+ brief
+ bulk-post
+ ctag
+ current-user-principal
+ directory listing
+ extended-principal-search
+ expand-property
+ only-proxy-groups
+ limits
+ own-root
+ prefer
+ prefer-minimal
+ prefer-representation
+ prefer-noroot
+ quota
+
+ resource-id
+ sync-report
+
+
+ sync-report-config-token
+ well-known
+
+
+
+
+ json-data
+
+
+ control-api
+
+
+ caldav
+ attachments-collection
+ auto-accept
+ auto-accept-modes
+ client-fix-TRANSP
+
+ default-alarms
+ EMAIL parameter
+ extended-freebusy
+ freebusy-url
+ group-attendee-expansion
+ implicit-scheduling
+ location-resource-tracking
+ managed-attachments
+ maskuid
+ no-duplicate-uids
+ partstat-timestamp
+
+ private-comments
+ private-events
+ proxy
+
+ recurrence-splitting
+ remove-duplicate-alarms
+ query-extended
+ shared-calendars
+ share-calendars-to-groups
+ schedule-changes
+ split-calendars
+ supported-component-sets
+ supported-component-sets-one
+ timerange-low-limit
+ timerange-high-limit
+ timezones-by-reference
+ timezone-service
+ timezone-std-service
+
+ travel-time-busy
+ vavailability
+
+ webcal
+
+
+ carddav
+ default-addressbook
+ shared-addressbooks
+ shared-addressbook-groups
+ directory-gateway
+
+
+
+
+
+
+ $multistatus-response-prefix:
+ /{DAV:}multistatus/{DAV:}response
+
+
+ $multistatus-href-prefix:
+ /{DAV:}multistatus/{DAV:}response/{DAV:}href
+
+
+ $verify-response-prefix:
+ {DAV:}response/{DAV:}propstat/{DAV:}prop
+
+
+ $verify-property-prefix:
+ /{DAV:}multistatus/{DAV:}response/{DAV:}propstat/{DAV:}prop
+
+
+ $verify-bad-response:
+ /{DAV:}multistatus/{DAV:}response/{DAV:}status
+
+
+ $verify-error-response:
+ /{DAV:}multistatus/{DAV:}response/{DAV:}error
+
+
+ $CALDAV:
+ urn:ietf:params:xml:ns:caldav
+
+
+ $CARDDAV:
+ urn:ietf:params:xml:ns:carddav
+
+
+ $CS:
+ http://calendarserver.org/ns/
+
+
+
+
+
+
+
+ $root:
+ /remote.php/carddav/
+
+
+
+
+ $principalcollection:
+ $root:principals/
+
+
+
+
+ $uidstype:
+ __uids__
+
+
+ $groupstype:
+ groups
+
+
+ $locationstype:
+ locations
+
+
+ $resourcestype:
+ resources
+
+
+
+
+ $principals_uids:
+ $principalcollection:$uidstype:/
+
+
+ $principals_users:
+ $principalcollection:
+
+
+ $principals_groups:
+ $principalcollection:$groupstype:/
+
+
+ $principals_resources:
+ $principalcollection:$resourcestype:/
+
+
+ $principals_locations:
+ $principalcollection:$locationstype:/
+
+
+
+
+ $calendars:
+ $root:calendars/
+
+
+
+
+ $calendars_uids:
+ $calendars:$uidstype:/
+
+
+ $calendars_users:
+ $calendars:
+
+
+ $calendars_resources:
+ $calendars:$resourcestype:/
+
+
+ $calendars_locations:
+ $calendars:$locationstype:/
+
+
+
+
+ $calendar:
+ calendar
+
+
+
+
+ $tasks:
+ tasks
+
+
+
+
+ $polls:
+ polls
+
+
+
+
+ $inbox:
+ inbox
+
+
+
+
+ $outbox:
+ outbox
+
+
+
+
+ $dropbox:
+ dropbox
+
+
+
+
+ $attachments:
+ dropbox
+
+
+
+
+ $notification:
+ notification
+
+
+
+
+ $freebusy:
+ freebusy
+
+
+
+
+ $calendar_home_items_initial_sync:
+ [-,$calendar:/,$tasks:/,$inbox:/,$outbox:/,$freebusy:,$notification:/]
+
+
+
+
+ $calendar_sync_extra_items:
+ [-]
+
+
+
+
+ $calendar_sync_extra_count:
+ 1
+
+
+
+
+ $servertoserver:
+ $root:inbox
+
+
+
+
+ $timezoneservice:
+ $root:timezones
+
+
+
+
+ $timezonestdservice:
+ $root:stdtimezones
+
+
+
+
+ $addressbooks:
+ $root:addressbooks/
+
+
+
+
+ $addressbooks_uids:
+ $addressbooks:$uidstype:/
+
+
+ $addressbooks_users:
+ $addressbooks:
+
+
+
+
+ $addressbook:
+ addressbook
+
+
+
+
+ $directory:
+ $root:directory/
+
+
+
+
+ $add-member:
+ ;add-member
+
+
+
+
+ $useradmin:
+ admin
+
+
+
+ $useradminguid:
+ 0C8BDE62-E600-4696-83D3-8B5ECABDFD2E
+
+
+
+ $pswdadmin:
+ admin
+
+
+
+
+ $principal_admin:
+ $principals_users:$useradmin:/
+
+
+ $principaluri_admin:
+ $principals_uids:$useradminguid:/
+
+
+
+
+ $userapprentice:
+ apprentice
+
+
+
+ $userapprenticeguid:
+ 29B6C503-11DF-43EC-8CCA-40C7003149CE
+
+
+
+ $pswdapprentice:
+ apprentice
+
+
+
+
+ $principal_apprentice:
+ $principals_users:$userapprentice:/
+
+
+ $principaluri_apprentice:
+ $principals_uids:$userapprenticeguid:/
+
+
+
+
+ $userproxy:
+ superuser
+
+
+
+ $pswdproxy:
+ superuser
+
+
+
+
+
+
+ $userid%d:
+ user%02d
+
+
+
+ $userguid%d:
+ 10000000-0000-0000-0000-000000000%03d
+
+
+
+ $username%d:
+ User %02d
+
+
+
+ $username-encoded%d:
+ User%%20%02d
+
+
+
+ $firstname%d:
+ User
+
+
+
+ $lastname%d:
+ %02d
+
+
+
+ $pswd%d:
+ user%02d
+
+
+
+ $principal%d:
+ $principals_users:$userid%d:/
+
+
+ $principaluri%d:
+ $principals_users:$userid%d:/
+
+
+ $principal%dnoslash:
+ $principals_users:$userid%d:
+
+
+
+
+ $calendarhome%d:
+ $calendars:$userid%d:
+
+
+
+ $calendarhomealt%d:
+ $calendars_users:$userid%d:
+
+
+
+ $calendarpath%d:
+ $calendarhome%d:/$calendar:
+
+
+
+ $calendarpathalt%d:
+ $calendarhomealt%d:/$calendar:
+
+
+
+ $taskspath%d:
+ $calendarhome%d:/$tasks:
+
+
+
+ $pollspath%d:
+ $calendarhome%d:/$polls:
+
+
+
+ $inboxpath%d:
+ $calendarhome%d:/$inbox:
+
+
+
+ $outboxpath%d:
+ $calendarhome%d:/$outbox:
+
+
+
+ $dropboxpath%d:
+ $calendarhome%d:/$dropbox:
+
+
+
+ $notificationpath%d:
+ $calendarhome%d:/$notification:
+
+
+
+ $freebusypath%d:
+ $calendarhome%d:/$freebusy:
+
+
+ $email%d:
+ $userid%d:@example.com
+
+
+
+ $cuaddr%d:
+ mailto:$email%d:
+
+
+ $cuaddralt%d:
+ $cuaddr%d:
+
+
+ $cuaddraltnoslash%d:
+ $cuaddr%d:
+
+
+ $cuaddrurn%d:
+ urn:x-uid:$userguid%d:
+
+
+
+
+ $addressbookhome%d:
+ $addressbooks:$userid%d:
+
+
+
+ $addressbookpath%d:
+ $addressbookhome%d:/$addressbook:
+
+
+
+
+
+
+
+ $publicuserid%d:
+ public%02d
+
+
+
+ $publicuserguid%d:
+ 50000000-0000-0000-0000-0000000000%02d
+
+
+
+ $publicusername%d:
+ Public %02d
+
+
+
+ $publicpswd%d:
+ public%02d
+
+
+
+ $publicprincipal%d:
+ $principals_users:$publicuserid%d:/
+
+
+ $publicprincipaluri%d:
+ $principals_uids:$publicuserguid%d:/
+
+
+
+ $publiccalendarhome%d:
+ $calendars_uids:$publicuserguid%d:
+
+
+
+ $publiccalendarpath%d:
+ $calendars_uids:$publicuserguid%d:/$calendar:
+
+
+ $publicemail%d:
+ $publicuserid%d:@example.com
+
+
+
+ $publiccuaddr%d:
+ mailto:$publicemail%d:
+
+
+ $publiccuaddralt%d:
+ $publiccuaddr%d:
+
+
+ $publiccuaddrurn%d:
+ urn:x-uid:$publicuserguid%d:
+
+
+
+
+
+
+ $resourceid%d:
+ resource%02d
+
+
+
+ $resourceguid%d:
+ 40000000-0000-0000-0000-000000000%03d
+
+
+
+ $resourcename%d:
+ Resource %02d
+
+
+
+ $rcalendarhome%d:
+ $calendars_uids:$resourceguid%d:
+
+
+
+ $rcalendarpath%d:
+ $calendars_uids:$resourceguid%d:/$calendar:
+
+
+
+ $rinboxpath%d:
+ $calendars_uids:$resourceguid%d:/$inbox:
+
+
+
+ $routboxpath%d:
+ $calendars_uids:$resourceguid%d:/$outbox:
+
+
+
+ $rprincipal%d:
+ $principals_resources:$resourceid%d:/
+
+
+ $rprincipaluri%d:
+ $principals_uids:$resourceguid%d:/
+
+
+ $rcuaddralt%d:
+ $rcuaddrurn%d:
+
+
+ $rcuaddrurn%d:
+ urn:x-uid:$resourceguid%d:
+
+
+
+
+
+
+ $locationid%d:
+ location%02d
+
+
+
+ $locationguid%d:
+ 30000000-0000-0000-0000-000000000%03d
+
+
+
+ $locationname%d:
+ Location %02d
+
+
+
+ $lcalendarhome%d:
+ $calendars_uids:$locationguid%d:
+
+
+
+ $lcalendarpath%d:
+ $calendars_uids:$locationguid%d:/$calendar:
+
+
+
+ $linboxpath%d:
+ $calendars_uids:$locationguid%d:/$inbox:
+
+
+
+ $loutboxpath%d:
+ $calendars_uids:$locationguid%d:/$outbox:
+
+
+
+ $lprincipal%d:
+ $principals_resources:$locationid%d:/
+
+
+ $lprincipaluri%d:
+ $principals_uids:$locationguid%d:/
+
+
+ $lcuaddralt%d:
+ $lprincipaluri%d:
+
+
+ $lcuaddrurn%d:
+ urn:x-uid:$locationguid%d:
+
+
+
+
+
+
+
+ $groupid%d:
+ group%02d
+
+
+
+ $groupguid%d:
+ 20000000-0000-0000-0000-000000000%03d
+
+
+
+ $groupname%d:
+ Group %02d
+
+
+
+ $gprincipal%d:
+ $principals_resources:$groupid%d:/
+
+
+ $gprincipaluri%d:
+ $principals_uids:$groupguid%d:/
+
+
+ $gemail%d:
+ $groupid%d:@example.com
+
+
+ $gcuaddralt%d:
+ $gprincipaluri%d:
+
+
+ $gcuaddrurn%d:
+ urn:x-uid:$groupguid%d:
+
+
+
+
+
+ $i18nid:
+ i18nuser
+
+
+
+ $i18nguid:
+ 860B3EE9-6D7C-4296-9639-E6B998074A78
+
+
+
+ $i18nname:
+ まだ
+
+
+
+ $i18npswd:
+ i18nuser
+
+
+
+ $i18ncalendarpath:
+ $calendars_uids:$i18nguid:/$calendar:
+
+
+ $i18nemail:
+ $i18nid:@example.com
+
+
+
+ $i18ncuaddr:
+ mailto:$i18nemail:
+
+
+ $i18ncuaddrurn:
+ urn:x-uid:$i18nguid:
+
+
+
+
+ $principaldisabled:
+ $principals_groups:disabledgroup/
+
+
+ $principaluridisabled:
+ $principals_uids:disabledgroup/
+
+
+
+ $cuaddrdisabled:
+ $principals_uids:disabledgroup/
+
+
+
+
+
+
+ $cuaddr2:
+ MAILTO:$email2:
+
+
+
+
diff --git a/apps/dav/tests/travis/caldavtest/serverinfo.xml b/apps/dav/tests/travis/caldavtest/serverinfo.xml
index c3ba99ee03d3..fea009a6ee39 100644
--- a/apps/dav/tests/travis/caldavtest/serverinfo.xml
+++ b/apps/dav/tests/travis/caldavtest/serverinfo.xml
@@ -1,7 +1,6 @@
-
+
diff --git a/apps/dav/tests/travis/carddav-old-endpoint/install.sh b/apps/dav/tests/travis/carddav-old-endpoint/install.sh
new file mode 100644
index 000000000000..db8b53bc8617
--- /dev/null
+++ b/apps/dav/tests/travis/carddav-old-endpoint/install.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+SCRIPT=`realpath $0`
+SCRIPTPATH=`dirname $SCRIPT`
+
+
+cd "$SCRIPTPATH"
+if [ ! -f CalDAVTester/testcaldav.py ]; then
+ git clone https://github.com/apple/ccs-caldavtester.git CalDAVTester
+fi
+if [ ! -f pycalendar/setup.py ]; then
+ git clone https://github.com/apple/ccs-pycalendar.git pycalendar
+fi
+
+# create test user
+cd "$SCRIPTPATH/../../../../../"
+OC_PASS=user01 php occ user:add --password-from-env user01
+php occ dav:create-addressbook user01 addressbook
+OC_PASS=user02 php occ user:add --password-from-env user02
+php occ dav:create-addressbook user02 addressbook
+cd "$SCRIPTPATH/../../../../../"
diff --git a/apps/dav/tests/travis/carddav-old-endpoint/script.sh b/apps/dav/tests/travis/carddav-old-endpoint/script.sh
new file mode 100644
index 000000000000..943ecd622df1
--- /dev/null
+++ b/apps/dav/tests/travis/carddav-old-endpoint/script.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+SCRIPT=`realpath $0`
+SCRIPTPATH=`dirname $SCRIPT`
+
+# Move the endpoint to the serverinfo file
+rm "$SCRIPTPATH/../caldavtest/serverinfo.xml"
+cp "$SCRIPTPATH/../caldavtest/serverinfo-carddav-old-endpoint.xml" "$SCRIPTPATH/../caldavtest/serverinfo.xml"
+
+# start the server
+php -S 127.0.0.1:8889 -t "$SCRIPTPATH/../../../../.." &
+
+sleep 30
+
+# run the tests
+cd "$SCRIPTPATH/CalDAVTester"
+PYTHONPATH="$SCRIPTPATH/pycalendar/src" python testcaldav.py --print-details-onfail --basedir "$SCRIPTPATH/../caldavtest/" -o cdt.txt \
+ "CardDAV/current-user-principal.xml" \
+ "CardDAV/sync-report.xml"
+
+RESULT=$?
+
+tail "$SCRIPTPATH/../../../../../data/owncloud.log"
+
+exit $RESULT
diff --git a/apps/dav/tests/travis/carddav/script.sh b/apps/dav/tests/travis/carddav/script.sh
index a8bd9f11b38d..104be3162ef6 100644
--- a/apps/dav/tests/travis/carddav/script.sh
+++ b/apps/dav/tests/travis/carddav/script.sh
@@ -3,7 +3,7 @@ SCRIPT=`realpath $0`
SCRIPTPATH=`dirname $SCRIPT`
# start the server
-php -S 127.0.0.1:8888 -t "$SCRIPTPATH/../../../../.." &
+php -S 127.0.0.1:8889 -t "$SCRIPTPATH/../../../../.." &
sleep 30
@@ -17,6 +17,6 @@ PYTHONPATH="$SCRIPTPATH/pycalendar/src" python testcaldav.py --print-details-onf
RESULT=$?
-tail "$/../../../../../data-autotest/owncloud.log"
+tail "$SCRIPTPATH/../../../../../data/owncloud.log"
exit $RESULT
diff --git a/apps/dav/tests/travis/litmus-v1/script.sh b/apps/dav/tests/travis/litmus-v1/script.sh
index cba305683b2b..e75c3bab5792 100644
--- a/apps/dav/tests/travis/litmus-v1/script.sh
+++ b/apps/dav/tests/travis/litmus-v1/script.sh
@@ -4,10 +4,10 @@ SCRIPTPATH=`dirname $SCRIPT`
# start the server
-php -S 127.0.0.1:8888 -t "$SCRIPTPATH/../../../../.." &
+php -S 127.0.0.1:8889 -t "$SCRIPTPATH/../../../../.." &
sleep 30
# run the tests
cd /tmp/litmus/litmus-0.13
-make URL=http://127.0.0.1:8888/remote.php/webdav CREDS="admin admin" TESTS="basic copymove props locks" check
+make URL=http://127.0.0.1:8889/remote.php/webdav CREDS="admin admin" TESTS="basic copymove props locks" check
diff --git a/apps/dav/tests/travis/litmus-v2/script.sh b/apps/dav/tests/travis/litmus-v2/script.sh
index 966ed5a20528..707f52d90008 100644
--- a/apps/dav/tests/travis/litmus-v2/script.sh
+++ b/apps/dav/tests/travis/litmus-v2/script.sh
@@ -4,10 +4,10 @@ SCRIPTPATH=`dirname $SCRIPT`
# start the server
-php -S 127.0.0.1:8888 -t "$SCRIPTPATH/../../../../.." &
+php -S 127.0.0.1:8889 -t "$SCRIPTPATH/../../../../.." &
sleep 30
# run the tests
cd /tmp/litmus/litmus-0.13
-make URL=http://127.0.0.1:8888/remote.php/dav/files/admin CREDS="admin admin" TESTS="basic copymove props locks" check
+make URL=http://127.0.0.1:8889/remote.php/dav/files/admin CREDS="admin admin" TESTS="basic copymove props locks" check