diff options
author | Andy Scherzinger <info@andy-scherzinger.de> | 2024-07-10 19:58:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-10 19:58:13 +0200 |
commit | 440968fe2ccbcb2d3a01a618b6eb29f7a4e09dc0 (patch) | |
tree | be3fedcc555400252103f3ccc39e88ce0708b54f /apps/dav/tests/unit | |
parent | 9745bf23dc70214860c50515efe3cb02e4a3bd96 (diff) | |
parent | d9d4f1e16f2b8d04880cc14d33875a03ca80077e (diff) | |
download | nextcloud-server-440968fe2ccbcb2d3a01a618b6eb29f7a4e09dc0.tar.gz nextcloud-server-440968fe2ccbcb2d3a01a618b6eb29f7a4e09dc0.zip |
Merge pull request #46012 from nextcloud/backport/45999/stable29
[stable29] fix(caldav): encode calendar URIs with umlauts for activities
Diffstat (limited to 'apps/dav/tests/unit')
-rw-r--r-- | apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php | 53 |
1 files changed, 47 insertions, 6 deletions
diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php index 33fbc7a7432..bfa324aa0e9 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/Provider/EventTest.php @@ -146,17 +146,58 @@ class EventTest extends TestCase { $this->assertEquals($result, $this->invokePrivate($this->provider, 'generateObjectParameter', [$objectParameter, $affectedUser])); } - public function testGenerateObjectParameterWithSharedCalendar(): void { - $link = [ - 'object_uri' => 'someuuid.ics', - 'calendar_uri' => 'personal', - 'owner' => 'sharer' + public static function generateObjectParameterLinkEncodingDataProvider(): array { + return [ + [ // Shared calendar + [ + 'object_uri' => 'someuuid.ics', + 'calendar_uri' => 'personal', + 'owner' => 'sharer' + ], + base64_encode('/remote.php/dav/calendars/sharee/personal_shared_by_sharer/someuuid.ics'), + ], + [ // Shared calendar with umlauts + [ + 'object_uri' => 'someuuid.ics', + 'calendar_uri' => 'umlaut_äüöß', + 'owner' => 'sharer' + ], + base64_encode('/remote.php/dav/calendars/sharee/umlaut_%c3%a4%c3%bc%c3%b6%c3%9f_shared_by_sharer/someuuid.ics'), + ], + [ // Shared calendar with umlauts and mixed casing + [ + 'object_uri' => 'someuuid.ics', + 'calendar_uri' => 'Umlaut_äüöß', + 'owner' => 'sharer' + ], + base64_encode('/remote.php/dav/calendars/sharee/Umlaut_%c3%a4%c3%bc%c3%b6%c3%9f_shared_by_sharer/someuuid.ics'), + ], + [ // Owned calendar with umlauts + [ + 'object_uri' => 'someuuid.ics', + 'calendar_uri' => 'umlaut_äüöß', + 'owner' => 'sharee' + ], + base64_encode('/remote.php/dav/calendars/sharee/umlaut_%c3%a4%c3%bc%c3%b6%c3%9f/someuuid.ics'), + ], + [ // Owned calendar with umlauts and mixed casing + [ + 'object_uri' => 'someuuid.ics', + 'calendar_uri' => 'Umlaut_äüöß', + 'owner' => 'sharee' + ], + base64_encode('/remote.php/dav/calendars/sharee/Umlaut_%c3%a4%c3%bc%c3%b6%c3%9f/someuuid.ics'), + ], ]; + } + + /** @dataProvider generateObjectParameterLinkEncodingDataProvider */ + public function testGenerateObjectParameterLinkEncoding(array $link, string $objectId): void { $generatedLink = [ 'view' => 'dayGridMonth', 'timeRange' => 'now', 'mode' => 'sidebar', - 'objectId' => base64_encode('/remote.php/dav/calendars/sharee/' . $link['calendar_uri'] . '_shared_by_sharer/' . $link['object_uri']), + 'objectId' => $objectId, 'recurrenceId' => 'next' ]; $this->appManager->expects($this->once()) |