fix(caldav): test for null and blank value

Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
pull/46624/head
SebastianKrupinski 1 year ago
parent 749dc7d9ae
commit 19ec5985b5
  1. 2
      apps/dav/lib/CalDAV/Reminder/ReminderService.php
  2. 29
      apps/dav/tests/unit/CalDAV/Reminder/ReminderServiceTest.php

@ -847,7 +847,7 @@ class ReminderService {
private function getCalendarTimeZone(int $calendarid): DateTimeZone {
$calendarInfo = $this->caldavBackend->getCalendarById($calendarid);
$tzProp = '{urn:ietf:params:xml:ns:caldav}calendar-timezone';
if (!isset($calendarInfo[$tzProp])) {
if (empty($calendarInfo[$tzProp])) {
// Defaulting to UTC
return new DateTimeZone('UTC');
}

@ -427,7 +427,7 @@ EOD;
$this->reminderService->onCalendarObjectCreate($objectData);
}
public function testOnCalendarObjectCreateAllDayWithoutTimezone(): void {
public function testOnCalendarObjectCreateAllDayWithNullTimezone(): void {
$objectData = [
'calendardata' => self::CALENDAR_DATA_ALL_DAY,
'id' => '42',
@ -454,6 +454,33 @@ EOD;
$this->reminderService->onCalendarObjectCreate($objectData);
}
public function testOnCalendarObjectCreateAllDayWithBlankTimezone(): void {
$objectData = [
'calendardata' => self::CALENDAR_DATA_ALL_DAY,
'id' => '42',
'calendarid' => '1337',
'component' => 'vevent',
];
$this->timeFactory->expects($this->once())
->method('getDateTime')
->with()
->willReturn(DateTime::createFromFormat(DateTime::ATOM, '2023-02-03T13:28:00+00:00'));
$this->caldavBackend->expects(self::once())
->method('getCalendarById')
->with(1337)
->willReturn([
'{urn:ietf:params:xml:ns:caldav}calendar-timezone' => '',
]);
// One hour before midnight relative to the server's time
$expectedReminderTimstamp = (new DateTime('2023-02-03T23:00:00'))->getTimestamp();
$this->backend->expects(self::once())
->method('insertReminder')
->with(1337, 42, self::anything(), false, 1675468800, false, self::anything(), self::anything(), 'EMAIL', true, $expectedReminderTimstamp, false);
$this->reminderService->onCalendarObjectCreate($objectData);
}
public function testOnCalendarObjectCreateAllDayWithTimezone(): void {
$objectData = [
'calendardata' => self::CALENDAR_DATA_ALL_DAY,

Loading…
Cancel
Save