diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 11af622d01ef..c474148f5a07 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -555,7 +555,7 @@ public function createCalendar($principalUri, $calendarUri, array $properties) { } $transp = '{' . Plugin::NS_CALDAV . '}schedule-calendar-transp'; if (isset($properties[$transp])) { - $values['transparent'] = $properties[$transp]->getValue()==='transparent'; + $values['transparent'] = $properties[$transp]->getValue() === 'transparent' ? 1 : 0; } foreach ($this->propertyMap as $xmlName=>$dbName) { @@ -599,7 +599,7 @@ public function updateCalendar($calendarId, PropPatch $propPatch) { switch ($propertyName) { case '{' . Plugin::NS_CALDAV . '}schedule-calendar-transp': $fieldName = 'transparent'; - $newValues[$fieldName] = $propertyValue->getValue() === 'transparent'; + $newValues[$fieldName] = $propertyValue->getValue() === 'transparent' ? 1 : 0; break; default: $fieldName = $this->propertyMap[$propertyName]; diff --git a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackendTest.php index d3d9309bc395..2b1fc2ef3672 100644 --- a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackendTest.php @@ -27,6 +27,7 @@ use OCA\DAV\DAV\GroupPrincipalBackend; use OCP\IConfig; use OCP\Security\ISecureRandom; +use Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp; use Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet; use Test\TestCase; @@ -104,7 +105,8 @@ public function tearDown() { */ protected function createTestCalendar() { $this->backend->createCalendar(self::UNIT_TEST_USER, 'Example', [ - '{http://apple.com/ns/ical/}calendar-color' => '#1C4587FF' + '{http://apple.com/ns/ical/}calendar-color' => '#1C4587FF', + '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp' => new ScheduleCalendarTransp('opaque') ]); $calendars = $this->backend->getCalendarsForUser(self::UNIT_TEST_USER); $this->assertCount(1, $calendars); @@ -114,6 +116,8 @@ protected function createTestCalendar() { $this->assertEquals(['VEVENT','VTODO'], $components->getValue()); $color = $calendars[0]['{http://apple.com/ns/ical/}calendar-color']; $this->assertEquals('#1C4587FF', $color); + $transparent = $calendars[0]['{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp']; + self::assertEquals(new ScheduleCalendarTransp('opaque'), $transparent); $this->assertEquals('Example', $calendars[0]['uri']); $this->assertEquals('Example', $calendars[0]['{DAV:}displayname']); return $calendars[0]['id']; diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php index 3b8227ac0d58..8226a1d38c16 100644 --- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php @@ -28,6 +28,7 @@ use OCA\DAV\CalDAV\CalDavBackend; use OCA\DAV\CalDAV\Calendar; use OCP\IL10N; +use Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp; use Sabre\DAV\PropPatch; use Sabre\DAV\Xml\Property\Href; use Sabre\DAVACL\IACL; @@ -51,7 +52,8 @@ public function testCalendarOperations() { // update it's display name $patch = new PropPatch([ '{DAV:}displayname' => 'Unit test', - '{urn:ietf:params:xml:ns:caldav}calendar-description' => 'Calendar used for unit testing' + '{urn:ietf:params:xml:ns:caldav}calendar-description' => 'Calendar used for unit testing', + '{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp' => new ScheduleCalendarTransp('transparent') ]); $this->backend->updateCalendar($calendarId, $patch); $patch->commit(); @@ -59,6 +61,7 @@ public function testCalendarOperations() { $this->assertCount(1, $books); $this->assertEquals('Unit test', $books[0]['{DAV:}displayname']); $this->assertEquals('Calendar used for unit testing', $books[0]['{urn:ietf:params:xml:ns:caldav}calendar-description']); + $this->assertEquals(new ScheduleCalendarTransp('transparent'), $books[0]['{urn:ietf:params:xml:ns:caldav}schedule-calendar-transp']); // delete the address book $this->backend->deleteCalendar($books[0]['id']);