diff options
author | Morris Jobke <hey@morrisjobke.de> | 2020-04-14 14:02:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-14 14:02:53 +0200 |
commit | 69960c860ae0568051be56eb12ccf74be0a59a08 (patch) | |
tree | cbe99787e476211d2e3e317f707bfbbb3998ce80 | |
parent | 34fc46251fe6a16d36040aed05833a8fb4d80520 (diff) | |
parent | 8d7411d5a0b06dfcd24bbd1e1d23c9aff148be1b (diff) | |
download | nextcloud-server-69960c860ae0568051be56eb12ccf74be0a59a08.tar.gz nextcloud-server-69960c860ae0568051be56eb12ccf74be0a59a08.zip |
Merge pull request #20102 from nextcloud/backport/18679/stable18
[stable18] fix OCA\DAV\CalDAV\CalDavBackend search $options
-rw-r--r-- | apps/dav/lib/CalDAV/CalDavBackend.php | 11 | ||||
-rw-r--r-- | apps/dav/tests/unit/CalDAV/CalDavBackendTest.php | 9 |
2 files changed, 11 insertions, 9 deletions
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 37dbb3c3f5d..96459566a5a 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -33,6 +33,7 @@ namespace OCA\DAV\CalDAV; +use DateTime; use OCA\DAV\Connector\Sabre\Principal; use OCA\DAV\DAV\Sharing\Backend; use OCA\DAV\DAV\Sharing\IShareable; @@ -1551,14 +1552,14 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription ->from('calendarobjects', 'c'); if (isset($options['timerange'])) { - if (isset($options['timerange']['start'])) { + if (isset($options['timerange']['start']) && $options['timerange']['start'] instanceof DateTime) { $outerQuery->andWhere($outerQuery->expr()->gt('lastoccurence', - $outerQuery->createNamedParameter($options['timerange']['start']->getTimeStamp))); + $outerQuery->createNamedParameter($options['timerange']['start']->getTimeStamp()))); } - if (isset($options['timerange']['end'])) { + if (isset($options['timerange']['end']) && $options['timerange']['end'] instanceof DateTime) { $outerQuery->andWhere($outerQuery->expr()->lt('firstoccurence', - $outerQuery->createNamedParameter($options['timerange']['end']->getTimeStamp))); + $outerQuery->createNamedParameter($options['timerange']['end']->getTimeStamp()))); } } @@ -2258,7 +2259,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription } } else { $it = new EventIterator($vObject, (string)$component->UID); - $maxDate = new \DateTime(self::MAX_DATE); + $maxDate = new DateTime(self::MAX_DATE); if ($it->isInfinite()) { $lastOccurrence = $maxDate->getTimestamp(); } else { diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php index 868ea2cf88b..8ac4961f19f 100644 --- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php @@ -807,7 +807,7 @@ EOD; /** * @dataProvider searchDataProvider */ - public function testSearch($isShared, $count) { + public function testSearch(bool $isShared, array $searchOptions, int $count) { $calendarId = $this->createTestCalendar(); $uris = []; @@ -901,15 +901,16 @@ EOD; ]; $result = $this->backend->search($calendarInfo, 'Test', - ['SUMMARY', 'LOCATION', 'ATTENDEE'], [], null, null); + ['SUMMARY', 'LOCATION', 'ATTENDEE'], $searchOptions, null, null); $this->assertCount($count, $result); } public function searchDataProvider() { return [ - [false, 4], - [true, 2], + [false, [], 4], + [true, ['timerange' => ['start' => new DateTime('2013-09-12 13:00:00'), 'end' => new DateTime('2013-09-12 14:00:00')]], 2], + [true, ['timerange' => ['start' => new DateTime('2013-09-12 15:00:00'), 'end' => new DateTime('2013-09-12 16:00:00')]], 0], ]; } |