Merge pull request #10958 from nextcloud/bugfix/10727/fix_caldav_logic_exception

remove LogicException, because it's also triggered with legitimate parameters
This commit is contained in:
Christoph Wurst 2018-09-05 18:07:40 +02:00 committed by GitHub
commit cfb2098e5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 14 deletions

View File

@ -28,10 +28,16 @@ class Plugin extends \Sabre\CalDAV\Plugin {
const SYSTEM_CALENDAR_ROOT = 'system-calendars'; const SYSTEM_CALENDAR_ROOT = 'system-calendars';
/** /**
* @inheritdoc * Returns the path to a principal's calendar home.
*
* The return url must not end with a slash.
* This function should return null in case a principal did not have
* a calendar home.
*
* @param string $principalUrl
* @return string|null
*/ */
function getCalendarHomeForPrincipal($principalUrl):string { function getCalendarHomeForPrincipal($principalUrl) {
if (strrpos($principalUrl, 'principals/users', -strlen($principalUrl)) !== false) { if (strrpos($principalUrl, 'principals/users', -strlen($principalUrl)) !== false) {
list(, $principalId) = \Sabre\Uri\split($principalUrl); list(, $principalId) = \Sabre\Uri\split($principalUrl);
return self::CALENDAR_ROOT . '/' . $principalId; return self::CALENDAR_ROOT . '/' . $principalId;
@ -44,8 +50,6 @@ class Plugin extends \Sabre\CalDAV\Plugin {
list(, $principalId) = \Sabre\Uri\split($principalUrl); list(, $principalId) = \Sabre\Uri\split($principalUrl);
return self::SYSTEM_CALENDAR_ROOT . '/calendar-rooms/' . $principalId; return self::SYSTEM_CALENDAR_ROOT . '/calendar-rooms/' . $principalId;
} }
throw new \LogicException('This is not supposed to happen');
} }
} }

View File

@ -39,10 +39,9 @@ class Plugin extends \Sabre\CardDAV\Plugin {
* Returns the addressbook home for a given principal * Returns the addressbook home for a given principal
* *
* @param string $principal * @param string $principal
* @return string * @return string|null
*/ */
protected function getAddressbookHomeForPrincipal($principal) { protected function getAddressbookHomeForPrincipal($principal) {
if (strrpos($principal, 'principals/users', -strlen($principal)) !== false) { if (strrpos($principal, 'principals/users', -strlen($principal)) !== false) {
list(, $principalId) = \Sabre\Uri\split($principal); list(, $principalId) = \Sabre\Uri\split($principal);
return self::ADDRESSBOOK_ROOT . '/users/' . $principalId; return self::ADDRESSBOOK_ROOT . '/users/' . $principalId;
@ -55,8 +54,6 @@ class Plugin extends \Sabre\CardDAV\Plugin {
list(, $principalId) = \Sabre\Uri\split($principal); list(, $principalId) = \Sabre\Uri\split($principal);
return self::ADDRESSBOOK_ROOT . '/system/' . $principalId; return self::ADDRESSBOOK_ROOT . '/system/' . $principalId;
} }
throw new \LogicException('This is not supposed to happen');
} }
/** /**

View File

@ -63,11 +63,7 @@ class PluginTest extends TestCase {
$this->assertSame($expected, $this->plugin->getCalendarHomeForPrincipal($input)); $this->assertSame($expected, $this->plugin->getCalendarHomeForPrincipal($input));
} }
/**
* @expectedException \LogicException
* @expectedExceptionMessage This is not supposed to happen
*/
public function testGetCalendarHomeForUnknownPrincipal() { public function testGetCalendarHomeForUnknownPrincipal() {
$this->plugin->getCalendarHomeForPrincipal('FOO/BAR/BLUB'); $this->assertNull($this->plugin->getCalendarHomeForPrincipal('FOO/BAR/BLUB'));
} }
} }