@@ -146,17 +146,58 @@ public function testGenerateObjectParameter(int $id, string $name, ?array $link,
146146 $ this ->assertEquals ($ result , $ this ->invokePrivate ($ this ->provider , 'generateObjectParameter ' , [$ objectParameter , $ affectedUser ]));
147147 }
148148
149- public function testGenerateObjectParameterWithSharedCalendar (): void {
150- $ link = [
151- 'object_uri ' => 'someuuid.ics ' ,
152- 'calendar_uri ' => 'personal ' ,
153- 'owner ' => 'sharer '
149+ public static function generateObjectParameterLinkEncodingDataProvider (): array {
150+ return [
151+ [ // Shared calendar
152+ [
153+ 'object_uri ' => 'someuuid.ics ' ,
154+ 'calendar_uri ' => 'personal ' ,
155+ 'owner ' => 'sharer '
156+ ],
157+ base64_encode ('/remote.php/dav/calendars/sharee/personal_shared_by_sharer/someuuid.ics ' ),
158+ ],
159+ [ // Shared calendar with umlauts
160+ [
161+ 'object_uri ' => 'someuuid.ics ' ,
162+ 'calendar_uri ' => 'umlaut_äüöß ' ,
163+ 'owner ' => 'sharer '
164+ ],
165+ base64_encode ('/remote.php/dav/calendars/sharee/umlaut_%c3%a4%c3%bc%c3%b6%c3%9f_shared_by_sharer/someuuid.ics ' ),
166+ ],
167+ [ // Shared calendar with umlauts and mixed casing
168+ [
169+ 'object_uri ' => 'someuuid.ics ' ,
170+ 'calendar_uri ' => 'Umlaut_äüöß ' ,
171+ 'owner ' => 'sharer '
172+ ],
173+ base64_encode ('/remote.php/dav/calendars/sharee/Umlaut_%c3%a4%c3%bc%c3%b6%c3%9f_shared_by_sharer/someuuid.ics ' ),
174+ ],
175+ [ // Owned calendar with umlauts
176+ [
177+ 'object_uri ' => 'someuuid.ics ' ,
178+ 'calendar_uri ' => 'umlaut_äüöß ' ,
179+ 'owner ' => 'sharee '
180+ ],
181+ base64_encode ('/remote.php/dav/calendars/sharee/umlaut_%c3%a4%c3%bc%c3%b6%c3%9f/someuuid.ics ' ),
182+ ],
183+ [ // Owned calendar with umlauts and mixed casing
184+ [
185+ 'object_uri ' => 'someuuid.ics ' ,
186+ 'calendar_uri ' => 'Umlaut_äüöß ' ,
187+ 'owner ' => 'sharee '
188+ ],
189+ base64_encode ('/remote.php/dav/calendars/sharee/Umlaut_%c3%a4%c3%bc%c3%b6%c3%9f/someuuid.ics ' ),
190+ ],
154191 ];
192+ }
193+
194+ /** @dataProvider generateObjectParameterLinkEncodingDataProvider */
195+ public function testGenerateObjectParameterLinkEncoding (array $ link , string $ objectId ): void {
155196 $ generatedLink = [
156197 'view ' => 'dayGridMonth ' ,
157198 'timeRange ' => 'now ' ,
158199 'mode ' => 'sidebar ' ,
159- 'objectId ' => base64_encode ( ' /remote.php/dav/calendars/sharee/ ' . $ link [ ' calendar_uri ' ] . ' _shared_by_sharer/ ' . $ link [ ' object_uri ' ]) ,
200+ 'objectId ' => $ objectId ,
160201 'recurrenceId ' => 'next '
161202 ];
162203 $ this ->appManager ->expects ($ this ->once ())
0 commit comments