Completed
Push — master ( 5262ba...247b25 )
by
unknown
30:03 queued 13s
created
apps/dav/tests/unit/CalDAV/CalendarHomeTest.php 1 patch
Indentation   +397 added lines, -397 removed lines patch added patch discarded remove patch
@@ -27,407 +27,407 @@
 block discarded – undo
27 27
 use Test\TestCase;
28 28
 
29 29
 class CalendarHomeTest extends TestCase {
30
-	private CalDavBackend&MockObject $backend;
31
-	private array $principalInfo = [];
32
-	private PluginManager&MockObject $pluginManager;
33
-	private LoggerInterface&MockObject $logger;
34
-	private FederatedCalendarFactory&MockObject $federatedCalendarFactory;
35
-	private CalendarHome $calendarHome;
36
-
37
-	protected function setUp(): void {
38
-		parent::setUp();
39
-
40
-		$this->backend = $this->createMock(CalDavBackend::class);
41
-		$this->principalInfo = [
42
-			'uri' => 'user-principal-123',
43
-		];
44
-		$this->pluginManager = $this->createMock(PluginManager::class);
45
-		$this->logger = $this->createMock(LoggerInterface::class);
46
-		$this->federatedCalendarFactory = $this->createMock(FederatedCalendarFactory::class);
47
-
48
-		$this->calendarHome = new CalendarHome(
49
-			$this->backend,
50
-			$this->principalInfo,
51
-			$this->logger,
52
-			$this->federatedCalendarFactory,
53
-			false
54
-		);
55
-
56
-		// Replace PluginManager with our mock
57
-		$reflection = new \ReflectionClass($this->calendarHome);
58
-		$reflectionProperty = $reflection->getProperty('pluginManager');
59
-		$reflectionProperty->setValue($this->calendarHome, $this->pluginManager);
60
-	}
61
-
62
-	public function testCreateCalendarValidName(): void {
63
-		/** @var MkCol&MockObject $mkCol */
64
-		$mkCol = $this->createMock(MkCol::class);
65
-
66
-		$mkCol->method('getResourceType')
67
-			->willReturn(['{DAV:}collection',
68
-				'{urn:ietf:params:xml:ns:caldav}calendar']);
69
-		$mkCol->method('getRemainingValues')
70
-			->willReturn(['... properties ...']);
71
-
72
-		$this->backend->expects(self::once())
73
-			->method('createCalendar')
74
-			->with('user-principal-123', 'name123', ['... properties ...']);
75
-
76
-		$this->calendarHome->createExtendedCollection('name123', $mkCol);
77
-	}
78
-
79
-	public function testCreateCalendarReservedName(): void {
80
-		$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
81
-		$this->expectExceptionMessage('The resource you tried to create has a reserved name');
82
-
83
-		/** @var MkCol&MockObject $mkCol */
84
-		$mkCol = $this->createMock(MkCol::class);
85
-
86
-		$this->calendarHome->createExtendedCollection('contact_birthdays', $mkCol);
87
-	}
88
-
89
-	public function testCreateCalendarReservedNameAppGenerated(): void {
90
-		$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
91
-		$this->expectExceptionMessage('The resource you tried to create has a reserved name');
92
-
93
-		/** @var MkCol&MockObject $mkCol */
94
-		$mkCol = $this->createMock(MkCol::class);
95
-
96
-		$this->calendarHome->createExtendedCollection('app-generated--example--foo-1', $mkCol);
97
-	}
98
-
99
-	public function testGetChildren():void {
100
-		$this->backend
101
-			->expects(self::once())
102
-			->method('getCalendarsForUser')
103
-			->with('user-principal-123')
104
-			->willReturn([]);
105
-
106
-		$this->backend
107
-			->expects(self::once())
108
-			->method('getFederatedCalendarsForUser')
109
-			->with('user-principal-123')
110
-			->willReturn([]);
111
-
112
-		$this->backend
113
-			->expects(self::once())
114
-			->method('getSubscriptionsForUser')
115
-			->with('user-principal-123')
116
-			->willReturn([]);
117
-
118
-		$calendarPlugin1 = $this->createMock(ICalendarProvider::class);
119
-		$calendarPlugin1
120
-			->expects(self::once())
121
-			->method('fetchAllForCalendarHome')
122
-			->with('user-principal-123')
123
-			->willReturn(['plugin1calendar1', 'plugin1calendar2']);
124
-
125
-		$calendarPlugin2 = $this->createMock(ICalendarProvider::class);
126
-		$calendarPlugin2
127
-			->expects(self::once())
128
-			->method('fetchAllForCalendarHome')
129
-			->with('user-principal-123')
130
-			->willReturn(['plugin2calendar1', 'plugin2calendar2']);
131
-
132
-		$this->pluginManager
133
-			->expects(self::once())
134
-			->method('getCalendarPlugins')
135
-			->with()
136
-			->willReturn([$calendarPlugin1, $calendarPlugin2]);
137
-
138
-		$actual = $this->calendarHome->getChildren();
139
-
140
-		$this->assertCount(7, $actual);
141
-		$this->assertInstanceOf(Inbox::class, $actual[0]);
142
-		$this->assertInstanceOf(Outbox::class, $actual[1]);
143
-		$this->assertInstanceOf(TrashbinHome::class, $actual[2]);
144
-		$this->assertEquals('plugin1calendar1', $actual[3]);
145
-		$this->assertEquals('plugin1calendar2', $actual[4]);
146
-		$this->assertEquals('plugin2calendar1', $actual[5]);
147
-		$this->assertEquals('plugin2calendar2', $actual[6]);
148
-	}
149
-
150
-	public function testGetChildNonAppGenerated():void {
151
-		$this->backend
152
-			->expects(self::once())
153
-			->method('getCalendarByUri')
154
-			->with('user-principal-123')
155
-			->willReturn([]);
156
-
157
-		$this->backend
158
-			->expects(self::once())
159
-			->method('getCalendarsForUser')
160
-			->with('user-principal-123')
161
-			->willReturn([]);
162
-
163
-		$this->backend
164
-			->expects(self::never())
165
-			->method('getFederatedCalendarsForUser');
166
-
167
-		$this->backend
168
-			->expects(self::once())
169
-			->method('getSubscriptionsForUser')
170
-			->with('user-principal-123')
171
-			->willReturn([]);
172
-
173
-		$this->pluginManager
174
-			->expects(self::never())
175
-			->method('getCalendarPlugins');
176
-
177
-		$this->expectException(\Sabre\DAV\Exception\NotFound::class);
178
-		$this->expectExceptionMessage('Node with name \'personal\' could not be found');
179
-
180
-		$this->calendarHome->getChild('personal');
181
-	}
182
-
183
-	public function testGetChildAppGenerated():void {
184
-		$this->backend
185
-			->expects(self::once())
186
-			->method('getCalendarByUri')
187
-			->with('user-principal-123')
188
-			->willReturn([]);
189
-
190
-		$this->backend
191
-			->expects(self::once())
192
-			->method('getCalendarsForUser')
193
-			->with('user-principal-123')
194
-			->willReturn([]);
195
-
196
-		$this->backend
197
-			->expects(self::never())
198
-			->method('getFederatedCalendarsForUser');
199
-
200
-		$this->backend
201
-			->expects(self::once())
202
-			->method('getSubscriptionsForUser')
203
-			->with('user-principal-123')
204
-			->willReturn([]);
205
-
206
-		$calendarPlugin1 = $this->createMock(ICalendarProvider::class);
207
-		$calendarPlugin1
208
-			->expects(self::once())
209
-			->method('getAppId')
210
-			->with()
211
-			->willReturn('calendar_plugin_1');
212
-		$calendarPlugin1
213
-			->expects(self::never())
214
-			->method('hasCalendarInCalendarHome');
215
-		$calendarPlugin1
216
-			->expects(self::never())
217
-			->method('getCalendarInCalendarHome');
218
-
219
-		$externalCalendarMock = $this->createMock(ExternalCalendar::class);
220
-
221
-		$calendarPlugin2 = $this->createMock(ICalendarProvider::class);
222
-		$calendarPlugin2
223
-			->expects(self::once())
224
-			->method('getAppId')
225
-			->with()
226
-			->willReturn('calendar_plugin_2');
227
-		$calendarPlugin2
228
-			->expects(self::once())
229
-			->method('hasCalendarInCalendarHome')
230
-			->with('user-principal-123', 'calendar-uri-from-backend')
231
-			->willReturn(true);
232
-		$calendarPlugin2
233
-			->expects(self::once())
234
-			->method('getCalendarInCalendarHome')
235
-			->with('user-principal-123', 'calendar-uri-from-backend')
236
-			->willReturn($externalCalendarMock);
237
-
238
-		$this->pluginManager
239
-			->expects(self::once())
240
-			->method('getCalendarPlugins')
241
-			->with()
242
-			->willReturn([$calendarPlugin1, $calendarPlugin2]);
243
-
244
-		$actual = $this->calendarHome->getChild('app-generated--calendar_plugin_2--calendar-uri-from-backend');
245
-		$this->assertEquals($externalCalendarMock, $actual);
246
-	}
247
-
248
-	public function testGetChildrenSubscriptions(): void {
249
-		$this->backend
250
-			->expects(self::once())
251
-			->method('getCalendarsForUser')
252
-			->with('user-principal-123')
253
-			->willReturn([]);
254
-
255
-		$this->backend
256
-			->expects(self::once())
257
-			->method('getFederatedCalendarsForUser')
258
-			->with('user-principal-123')
259
-			->willReturn([]);
260
-
261
-		$this->backend
262
-			->expects(self::once())
263
-			->method('getSubscriptionsForUser')
264
-			->with('user-principal-123')
265
-			->willReturn([
266
-				[
267
-					'id' => 'subscription-1',
268
-					'uri' => 'subscription-1',
269
-					'principaluri' => 'user-principal-123',
270
-					'source' => 'https://localhost/subscription-1',
271
-					// A subscription array has actually more properties.
272
-				],
273
-				[
274
-					'id' => 'subscription-2',
275
-					'uri' => 'subscription-2',
276
-					'principaluri' => 'user-principal-123',
277
-					'source' => 'https://localhost/subscription-2',
278
-					// A subscription array has actually more properties.
279
-				]
280
-			]);
281
-
282
-		/*
30
+    private CalDavBackend&MockObject $backend;
31
+    private array $principalInfo = [];
32
+    private PluginManager&MockObject $pluginManager;
33
+    private LoggerInterface&MockObject $logger;
34
+    private FederatedCalendarFactory&MockObject $federatedCalendarFactory;
35
+    private CalendarHome $calendarHome;
36
+
37
+    protected function setUp(): void {
38
+        parent::setUp();
39
+
40
+        $this->backend = $this->createMock(CalDavBackend::class);
41
+        $this->principalInfo = [
42
+            'uri' => 'user-principal-123',
43
+        ];
44
+        $this->pluginManager = $this->createMock(PluginManager::class);
45
+        $this->logger = $this->createMock(LoggerInterface::class);
46
+        $this->federatedCalendarFactory = $this->createMock(FederatedCalendarFactory::class);
47
+
48
+        $this->calendarHome = new CalendarHome(
49
+            $this->backend,
50
+            $this->principalInfo,
51
+            $this->logger,
52
+            $this->federatedCalendarFactory,
53
+            false
54
+        );
55
+
56
+        // Replace PluginManager with our mock
57
+        $reflection = new \ReflectionClass($this->calendarHome);
58
+        $reflectionProperty = $reflection->getProperty('pluginManager');
59
+        $reflectionProperty->setValue($this->calendarHome, $this->pluginManager);
60
+    }
61
+
62
+    public function testCreateCalendarValidName(): void {
63
+        /** @var MkCol&MockObject $mkCol */
64
+        $mkCol = $this->createMock(MkCol::class);
65
+
66
+        $mkCol->method('getResourceType')
67
+            ->willReturn(['{DAV:}collection',
68
+                '{urn:ietf:params:xml:ns:caldav}calendar']);
69
+        $mkCol->method('getRemainingValues')
70
+            ->willReturn(['... properties ...']);
71
+
72
+        $this->backend->expects(self::once())
73
+            ->method('createCalendar')
74
+            ->with('user-principal-123', 'name123', ['... properties ...']);
75
+
76
+        $this->calendarHome->createExtendedCollection('name123', $mkCol);
77
+    }
78
+
79
+    public function testCreateCalendarReservedName(): void {
80
+        $this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
81
+        $this->expectExceptionMessage('The resource you tried to create has a reserved name');
82
+
83
+        /** @var MkCol&MockObject $mkCol */
84
+        $mkCol = $this->createMock(MkCol::class);
85
+
86
+        $this->calendarHome->createExtendedCollection('contact_birthdays', $mkCol);
87
+    }
88
+
89
+    public function testCreateCalendarReservedNameAppGenerated(): void {
90
+        $this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
91
+        $this->expectExceptionMessage('The resource you tried to create has a reserved name');
92
+
93
+        /** @var MkCol&MockObject $mkCol */
94
+        $mkCol = $this->createMock(MkCol::class);
95
+
96
+        $this->calendarHome->createExtendedCollection('app-generated--example--foo-1', $mkCol);
97
+    }
98
+
99
+    public function testGetChildren():void {
100
+        $this->backend
101
+            ->expects(self::once())
102
+            ->method('getCalendarsForUser')
103
+            ->with('user-principal-123')
104
+            ->willReturn([]);
105
+
106
+        $this->backend
107
+            ->expects(self::once())
108
+            ->method('getFederatedCalendarsForUser')
109
+            ->with('user-principal-123')
110
+            ->willReturn([]);
111
+
112
+        $this->backend
113
+            ->expects(self::once())
114
+            ->method('getSubscriptionsForUser')
115
+            ->with('user-principal-123')
116
+            ->willReturn([]);
117
+
118
+        $calendarPlugin1 = $this->createMock(ICalendarProvider::class);
119
+        $calendarPlugin1
120
+            ->expects(self::once())
121
+            ->method('fetchAllForCalendarHome')
122
+            ->with('user-principal-123')
123
+            ->willReturn(['plugin1calendar1', 'plugin1calendar2']);
124
+
125
+        $calendarPlugin2 = $this->createMock(ICalendarProvider::class);
126
+        $calendarPlugin2
127
+            ->expects(self::once())
128
+            ->method('fetchAllForCalendarHome')
129
+            ->with('user-principal-123')
130
+            ->willReturn(['plugin2calendar1', 'plugin2calendar2']);
131
+
132
+        $this->pluginManager
133
+            ->expects(self::once())
134
+            ->method('getCalendarPlugins')
135
+            ->with()
136
+            ->willReturn([$calendarPlugin1, $calendarPlugin2]);
137
+
138
+        $actual = $this->calendarHome->getChildren();
139
+
140
+        $this->assertCount(7, $actual);
141
+        $this->assertInstanceOf(Inbox::class, $actual[0]);
142
+        $this->assertInstanceOf(Outbox::class, $actual[1]);
143
+        $this->assertInstanceOf(TrashbinHome::class, $actual[2]);
144
+        $this->assertEquals('plugin1calendar1', $actual[3]);
145
+        $this->assertEquals('plugin1calendar2', $actual[4]);
146
+        $this->assertEquals('plugin2calendar1', $actual[5]);
147
+        $this->assertEquals('plugin2calendar2', $actual[6]);
148
+    }
149
+
150
+    public function testGetChildNonAppGenerated():void {
151
+        $this->backend
152
+            ->expects(self::once())
153
+            ->method('getCalendarByUri')
154
+            ->with('user-principal-123')
155
+            ->willReturn([]);
156
+
157
+        $this->backend
158
+            ->expects(self::once())
159
+            ->method('getCalendarsForUser')
160
+            ->with('user-principal-123')
161
+            ->willReturn([]);
162
+
163
+        $this->backend
164
+            ->expects(self::never())
165
+            ->method('getFederatedCalendarsForUser');
166
+
167
+        $this->backend
168
+            ->expects(self::once())
169
+            ->method('getSubscriptionsForUser')
170
+            ->with('user-principal-123')
171
+            ->willReturn([]);
172
+
173
+        $this->pluginManager
174
+            ->expects(self::never())
175
+            ->method('getCalendarPlugins');
176
+
177
+        $this->expectException(\Sabre\DAV\Exception\NotFound::class);
178
+        $this->expectExceptionMessage('Node with name \'personal\' could not be found');
179
+
180
+        $this->calendarHome->getChild('personal');
181
+    }
182
+
183
+    public function testGetChildAppGenerated():void {
184
+        $this->backend
185
+            ->expects(self::once())
186
+            ->method('getCalendarByUri')
187
+            ->with('user-principal-123')
188
+            ->willReturn([]);
189
+
190
+        $this->backend
191
+            ->expects(self::once())
192
+            ->method('getCalendarsForUser')
193
+            ->with('user-principal-123')
194
+            ->willReturn([]);
195
+
196
+        $this->backend
197
+            ->expects(self::never())
198
+            ->method('getFederatedCalendarsForUser');
199
+
200
+        $this->backend
201
+            ->expects(self::once())
202
+            ->method('getSubscriptionsForUser')
203
+            ->with('user-principal-123')
204
+            ->willReturn([]);
205
+
206
+        $calendarPlugin1 = $this->createMock(ICalendarProvider::class);
207
+        $calendarPlugin1
208
+            ->expects(self::once())
209
+            ->method('getAppId')
210
+            ->with()
211
+            ->willReturn('calendar_plugin_1');
212
+        $calendarPlugin1
213
+            ->expects(self::never())
214
+            ->method('hasCalendarInCalendarHome');
215
+        $calendarPlugin1
216
+            ->expects(self::never())
217
+            ->method('getCalendarInCalendarHome');
218
+
219
+        $externalCalendarMock = $this->createMock(ExternalCalendar::class);
220
+
221
+        $calendarPlugin2 = $this->createMock(ICalendarProvider::class);
222
+        $calendarPlugin2
223
+            ->expects(self::once())
224
+            ->method('getAppId')
225
+            ->with()
226
+            ->willReturn('calendar_plugin_2');
227
+        $calendarPlugin2
228
+            ->expects(self::once())
229
+            ->method('hasCalendarInCalendarHome')
230
+            ->with('user-principal-123', 'calendar-uri-from-backend')
231
+            ->willReturn(true);
232
+        $calendarPlugin2
233
+            ->expects(self::once())
234
+            ->method('getCalendarInCalendarHome')
235
+            ->with('user-principal-123', 'calendar-uri-from-backend')
236
+            ->willReturn($externalCalendarMock);
237
+
238
+        $this->pluginManager
239
+            ->expects(self::once())
240
+            ->method('getCalendarPlugins')
241
+            ->with()
242
+            ->willReturn([$calendarPlugin1, $calendarPlugin2]);
243
+
244
+        $actual = $this->calendarHome->getChild('app-generated--calendar_plugin_2--calendar-uri-from-backend');
245
+        $this->assertEquals($externalCalendarMock, $actual);
246
+    }
247
+
248
+    public function testGetChildrenSubscriptions(): void {
249
+        $this->backend
250
+            ->expects(self::once())
251
+            ->method('getCalendarsForUser')
252
+            ->with('user-principal-123')
253
+            ->willReturn([]);
254
+
255
+        $this->backend
256
+            ->expects(self::once())
257
+            ->method('getFederatedCalendarsForUser')
258
+            ->with('user-principal-123')
259
+            ->willReturn([]);
260
+
261
+        $this->backend
262
+            ->expects(self::once())
263
+            ->method('getSubscriptionsForUser')
264
+            ->with('user-principal-123')
265
+            ->willReturn([
266
+                [
267
+                    'id' => 'subscription-1',
268
+                    'uri' => 'subscription-1',
269
+                    'principaluri' => 'user-principal-123',
270
+                    'source' => 'https://localhost/subscription-1',
271
+                    // A subscription array has actually more properties.
272
+                ],
273
+                [
274
+                    'id' => 'subscription-2',
275
+                    'uri' => 'subscription-2',
276
+                    'principaluri' => 'user-principal-123',
277
+                    'source' => 'https://localhost/subscription-2',
278
+                    // A subscription array has actually more properties.
279
+                ]
280
+            ]);
281
+
282
+        /*
283 283
 		 * @FIXME: PluginManager should be injected via constructor.
284 284
 		 */
285 285
 
286
-		$pluginManager = $this->createMock(PluginManager::class);
287
-		$pluginManager
288
-			->expects(self::once())
289
-			->method('getCalendarPlugins')
290
-			->with()
291
-			->willReturn([]);
292
-
293
-		$calendarHome = new CalendarHome(
294
-			$this->backend,
295
-			$this->principalInfo,
296
-			$this->logger,
297
-			$this->federatedCalendarFactory,
298
-			false
299
-		);
300
-
301
-		$reflection = new \ReflectionClass($calendarHome);
302
-		$reflectionProperty = $reflection->getProperty('pluginManager');
303
-		$reflectionProperty->setValue($calendarHome, $pluginManager);
304
-
305
-		$actual = $calendarHome->getChildren();
306
-
307
-		$this->assertCount(5, $actual);
308
-		$this->assertInstanceOf(Inbox::class, $actual[0]);
309
-		$this->assertInstanceOf(Outbox::class, $actual[1]);
310
-		$this->assertInstanceOf(TrashbinHome::class, $actual[2]);
311
-		$this->assertInstanceOf(Subscription::class, $actual[3]);
312
-		$this->assertInstanceOf(Subscription::class, $actual[4]);
313
-	}
314
-
315
-	public function testGetChildrenCachedSubscriptions(): void {
316
-		$this->backend
317
-			->expects(self::once())
318
-			->method('getCalendarsForUser')
319
-			->with('user-principal-123')
320
-			->willReturn([]);
321
-
322
-		$this->backend
323
-			->expects(self::once())
324
-			->method('getFederatedCalendarsForUser')
325
-			->with('user-principal-123')
326
-			->willReturn([]);
327
-
328
-		$this->backend
329
-			->expects(self::once())
330
-			->method('getSubscriptionsForUser')
331
-			->with('user-principal-123')
332
-			->willReturn([
333
-				[
334
-					'id' => 'subscription-1',
335
-					'uri' => 'subscription-1',
336
-					'principaluris' => 'user-principal-123',
337
-					'source' => 'https://localhost/subscription-1',
338
-					// A subscription array has actually more properties.
339
-				],
340
-				[
341
-					'id' => 'subscription-2',
342
-					'uri' => 'subscription-2',
343
-					'principaluri' => 'user-principal-123',
344
-					'source' => 'https://localhost/subscription-2',
345
-					// A subscription array has actually more properties.
346
-				]
347
-			]);
348
-
349
-		/*
286
+        $pluginManager = $this->createMock(PluginManager::class);
287
+        $pluginManager
288
+            ->expects(self::once())
289
+            ->method('getCalendarPlugins')
290
+            ->with()
291
+            ->willReturn([]);
292
+
293
+        $calendarHome = new CalendarHome(
294
+            $this->backend,
295
+            $this->principalInfo,
296
+            $this->logger,
297
+            $this->federatedCalendarFactory,
298
+            false
299
+        );
300
+
301
+        $reflection = new \ReflectionClass($calendarHome);
302
+        $reflectionProperty = $reflection->getProperty('pluginManager');
303
+        $reflectionProperty->setValue($calendarHome, $pluginManager);
304
+
305
+        $actual = $calendarHome->getChildren();
306
+
307
+        $this->assertCount(5, $actual);
308
+        $this->assertInstanceOf(Inbox::class, $actual[0]);
309
+        $this->assertInstanceOf(Outbox::class, $actual[1]);
310
+        $this->assertInstanceOf(TrashbinHome::class, $actual[2]);
311
+        $this->assertInstanceOf(Subscription::class, $actual[3]);
312
+        $this->assertInstanceOf(Subscription::class, $actual[4]);
313
+    }
314
+
315
+    public function testGetChildrenCachedSubscriptions(): void {
316
+        $this->backend
317
+            ->expects(self::once())
318
+            ->method('getCalendarsForUser')
319
+            ->with('user-principal-123')
320
+            ->willReturn([]);
321
+
322
+        $this->backend
323
+            ->expects(self::once())
324
+            ->method('getFederatedCalendarsForUser')
325
+            ->with('user-principal-123')
326
+            ->willReturn([]);
327
+
328
+        $this->backend
329
+            ->expects(self::once())
330
+            ->method('getSubscriptionsForUser')
331
+            ->with('user-principal-123')
332
+            ->willReturn([
333
+                [
334
+                    'id' => 'subscription-1',
335
+                    'uri' => 'subscription-1',
336
+                    'principaluris' => 'user-principal-123',
337
+                    'source' => 'https://localhost/subscription-1',
338
+                    // A subscription array has actually more properties.
339
+                ],
340
+                [
341
+                    'id' => 'subscription-2',
342
+                    'uri' => 'subscription-2',
343
+                    'principaluri' => 'user-principal-123',
344
+                    'source' => 'https://localhost/subscription-2',
345
+                    // A subscription array has actually more properties.
346
+                ]
347
+            ]);
348
+
349
+        /*
350 350
 		 * @FIXME: PluginManager should be injected via constructor.
351 351
 		 */
352 352
 
353
-		$pluginManager = $this->createMock(PluginManager::class);
354
-		$pluginManager
355
-			->expects(self::once())
356
-			->method('getCalendarPlugins')
357
-			->with()
358
-			->willReturn([]);
359
-
360
-		$calendarHome = new CalendarHome(
361
-			$this->backend,
362
-			$this->principalInfo,
363
-			$this->logger,
364
-			$this->federatedCalendarFactory,
365
-			true
366
-		);
367
-
368
-		$reflection = new \ReflectionClass($calendarHome);
369
-		$reflectionProperty = $reflection->getProperty('pluginManager');
370
-		$reflectionProperty->setValue($calendarHome, $pluginManager);
371
-
372
-		$actual = $calendarHome->getChildren();
373
-
374
-		$this->assertCount(5, $actual);
375
-		$this->assertInstanceOf(Inbox::class, $actual[0]);
376
-		$this->assertInstanceOf(Outbox::class, $actual[1]);
377
-		$this->assertInstanceOf(TrashbinHome::class, $actual[2]);
378
-		$this->assertInstanceOf(CachedSubscription::class, $actual[3]);
379
-		$this->assertInstanceOf(CachedSubscription::class, $actual[4]);
380
-	}
381
-
382
-	public function testGetChildrenFederatedCalendars(): void {
383
-		$this->backend
384
-			->expects(self::once())
385
-			->method('getCalendarsForUser')
386
-			->with('user-principal-123')
387
-			->willReturn([]);
388
-
389
-		$this->backend
390
-			->expects(self::once())
391
-			->method('getFederatedCalendarsForUser')
392
-			->with('user-principal-123')
393
-			->willReturn([
394
-				[
395
-					'id' => 10,
396
-					'uri' => 'fed-cal-1',
397
-					'principaluri' => 'user-principal-123',
398
-					'{DAV:}displayname' => 'Federated calendar 1',
399
-					'{http://sabredav.org/ns}sync-token' => 3,
400
-					'{http://calendarserver.org/ns/}getctag' => 'http://sabre.io/ns/sync/3',
401
-					'{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set' => new SupportedCalendarComponentSet(['VEVENT']),
402
-					'{http://owncloud.org/ns}owner-principal' => 'principals/remote-users/c2hhcmVyQGhvc3QudGxkCg==',
403
-					'{http://owncloud.org/ns}read-only' => 1
404
-				],
405
-				[
406
-					'id' => 11,
407
-					'uri' => 'fed-cal-2',
408
-					'principaluri' => 'user-principal-123',
409
-					'{DAV:}displayname' => 'Federated calendar 2',
410
-					'{http://sabredav.org/ns}sync-token' => 5,
411
-					'{http://calendarserver.org/ns/}getctag' => 'http://sabre.io/ns/sync/5',
412
-					'{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set' => new SupportedCalendarComponentSet(['VEVENT']),
413
-					'{http://owncloud.org/ns}owner-principal' => 'principals/remote-users/c2hhcmVyQGhvc3QudGxkCg==',
414
-					'{http://owncloud.org/ns}read-only' => 1
415
-				],
416
-			]);
417
-
418
-		$this->backend
419
-			->expects(self::once())
420
-			->method('getSubscriptionsForUser')
421
-			->with('user-principal-123')
422
-			->willReturn([]);
423
-
424
-		$actual = $this->calendarHome->getChildren();
425
-
426
-		$this->assertCount(5, $actual);
427
-		$this->assertInstanceOf(Inbox::class, $actual[0]);
428
-		$this->assertInstanceOf(Outbox::class, $actual[1]);
429
-		$this->assertInstanceOf(TrashbinHome::class, $actual[2]);
430
-		$this->assertInstanceOf(FederatedCalendar::class, $actual[3]);
431
-		$this->assertInstanceOf(FederatedCalendar::class, $actual[4]);
432
-	}
353
+        $pluginManager = $this->createMock(PluginManager::class);
354
+        $pluginManager
355
+            ->expects(self::once())
356
+            ->method('getCalendarPlugins')
357
+            ->with()
358
+            ->willReturn([]);
359
+
360
+        $calendarHome = new CalendarHome(
361
+            $this->backend,
362
+            $this->principalInfo,
363
+            $this->logger,
364
+            $this->federatedCalendarFactory,
365
+            true
366
+        );
367
+
368
+        $reflection = new \ReflectionClass($calendarHome);
369
+        $reflectionProperty = $reflection->getProperty('pluginManager');
370
+        $reflectionProperty->setValue($calendarHome, $pluginManager);
371
+
372
+        $actual = $calendarHome->getChildren();
373
+
374
+        $this->assertCount(5, $actual);
375
+        $this->assertInstanceOf(Inbox::class, $actual[0]);
376
+        $this->assertInstanceOf(Outbox::class, $actual[1]);
377
+        $this->assertInstanceOf(TrashbinHome::class, $actual[2]);
378
+        $this->assertInstanceOf(CachedSubscription::class, $actual[3]);
379
+        $this->assertInstanceOf(CachedSubscription::class, $actual[4]);
380
+    }
381
+
382
+    public function testGetChildrenFederatedCalendars(): void {
383
+        $this->backend
384
+            ->expects(self::once())
385
+            ->method('getCalendarsForUser')
386
+            ->with('user-principal-123')
387
+            ->willReturn([]);
388
+
389
+        $this->backend
390
+            ->expects(self::once())
391
+            ->method('getFederatedCalendarsForUser')
392
+            ->with('user-principal-123')
393
+            ->willReturn([
394
+                [
395
+                    'id' => 10,
396
+                    'uri' => 'fed-cal-1',
397
+                    'principaluri' => 'user-principal-123',
398
+                    '{DAV:}displayname' => 'Federated calendar 1',
399
+                    '{http://sabredav.org/ns}sync-token' => 3,
400
+                    '{http://calendarserver.org/ns/}getctag' => 'http://sabre.io/ns/sync/3',
401
+                    '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set' => new SupportedCalendarComponentSet(['VEVENT']),
402
+                    '{http://owncloud.org/ns}owner-principal' => 'principals/remote-users/c2hhcmVyQGhvc3QudGxkCg==',
403
+                    '{http://owncloud.org/ns}read-only' => 1
404
+                ],
405
+                [
406
+                    'id' => 11,
407
+                    'uri' => 'fed-cal-2',
408
+                    'principaluri' => 'user-principal-123',
409
+                    '{DAV:}displayname' => 'Federated calendar 2',
410
+                    '{http://sabredav.org/ns}sync-token' => 5,
411
+                    '{http://calendarserver.org/ns/}getctag' => 'http://sabre.io/ns/sync/5',
412
+                    '{urn:ietf:params:xml:ns:caldav}supported-calendar-component-set' => new SupportedCalendarComponentSet(['VEVENT']),
413
+                    '{http://owncloud.org/ns}owner-principal' => 'principals/remote-users/c2hhcmVyQGhvc3QudGxkCg==',
414
+                    '{http://owncloud.org/ns}read-only' => 1
415
+                ],
416
+            ]);
417
+
418
+        $this->backend
419
+            ->expects(self::once())
420
+            ->method('getSubscriptionsForUser')
421
+            ->with('user-principal-123')
422
+            ->willReturn([]);
423
+
424
+        $actual = $this->calendarHome->getChildren();
425
+
426
+        $this->assertCount(5, $actual);
427
+        $this->assertInstanceOf(Inbox::class, $actual[0]);
428
+        $this->assertInstanceOf(Outbox::class, $actual[1]);
429
+        $this->assertInstanceOf(TrashbinHome::class, $actual[2]);
430
+        $this->assertInstanceOf(FederatedCalendar::class, $actual[3]);
431
+        $this->assertInstanceOf(FederatedCalendar::class, $actual[4]);
432
+    }
433 433
 }
Please login to merge, or discard this patch.
apps/dav/tests/unit/DAV/Sharing/BackendTest.php 1 patch
Indentation   +380 added lines, -380 removed lines patch added patch discarded remove patch
@@ -26,384 +26,384 @@
 block discarded – undo
26 26
 
27 27
 class BackendTest extends TestCase {
28 28
 
29
-	private IDBConnection&MockObject $db;
30
-	private IUserManager&MockObject $userManager;
31
-	private IGroupManager&MockObject $groupManager;
32
-	private Principal&MockObject $principalBackend;
33
-	private ICache&MockObject $shareCache;
34
-	private LoggerInterface&MockObject $logger;
35
-	private ICacheFactory&MockObject $cacheFactory;
36
-	private Service&MockObject $calendarService;
37
-	private RemoteUserPrincipalBackend&MockObject $remoteUserPrincipalBackend;
38
-	private FederationSharingService&MockObject $federationSharingService;
39
-	private CalendarSharingBackend $backend;
40
-
41
-	protected function setUp(): void {
42
-		parent::setUp();
43
-		$this->db = $this->createMock(IDBConnection::class);
44
-		$this->userManager = $this->createMock(IUserManager::class);
45
-		$this->groupManager = $this->createMock(IGroupManager::class);
46
-		$this->principalBackend = $this->createMock(Principal::class);
47
-		$this->cacheFactory = $this->createMock(ICacheFactory::class);
48
-		$this->shareCache = $this->createMock(ICache::class);
49
-		$this->logger = $this->createMock(LoggerInterface::class);
50
-		$this->calendarService = $this->createMock(Service::class);
51
-		$this->cacheFactory->expects(self::any())
52
-			->method('createInMemory')
53
-			->willReturn($this->shareCache);
54
-		$this->remoteUserPrincipalBackend = $this->createMock(RemoteUserPrincipalBackend::class);
55
-		$this->federationSharingService = $this->createMock(FederationSharingService::class);
56
-
57
-		$this->backend = new CalendarSharingBackend(
58
-			$this->userManager,
59
-			$this->groupManager,
60
-			$this->principalBackend,
61
-			$this->remoteUserPrincipalBackend,
62
-			$this->cacheFactory,
63
-			$this->calendarService,
64
-			$this->federationSharingService,
65
-			$this->logger,
66
-		);
67
-	}
68
-
69
-	public function testUpdateShareCalendarBob(): void {
70
-		$shareable = $this->createConfiguredMock(IShareable::class, [
71
-			'getOwner' => 'principals/users/alice',
72
-			'getResourceId' => 42,
73
-		]);
74
-		$add = [
75
-			[
76
-				'href' => 'principal:principals/users/bob',
77
-				'readOnly' => true,
78
-			]
79
-		];
80
-		$principal = 'principals/users/bob';
81
-
82
-		$this->shareCache->expects(self::once())
83
-			->method('clear');
84
-		$this->principalBackend->expects(self::once())
85
-			->method('findByUri')
86
-			->willReturn($principal);
87
-		$this->userManager->expects(self::once())
88
-			->method('userExists')
89
-			->willReturn(true);
90
-		$this->groupManager->expects(self::never())
91
-			->method('groupExists');
92
-		$this->calendarService->expects(self::once())
93
-			->method('shareWith')
94
-			->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
95
-
96
-		$this->backend->updateShares($shareable, $add, []);
97
-	}
98
-
99
-	public function testUpdateShareCalendarGroup(): void {
100
-		$shareable = $this->createConfiguredMock(IShareable::class, [
101
-			'getOwner' => 'principals/users/alice',
102
-			'getResourceId' => 42,
103
-		]);
104
-		$add = [
105
-			[
106
-				'href' => 'principal:principals/groups/bob',
107
-				'readOnly' => true,
108
-			]
109
-		];
110
-		$principal = 'principals/groups/bob';
111
-
112
-		$this->shareCache->expects(self::once())
113
-			->method('clear');
114
-		$this->principalBackend->expects(self::once())
115
-			->method('findByUri')
116
-			->willReturn($principal);
117
-		$this->userManager->expects(self::never())
118
-			->method('userExists');
119
-		$this->groupManager->expects(self::once())
120
-			->method('groupExists')
121
-			->willReturn(true);
122
-		$this->calendarService->expects(self::once())
123
-			->method('shareWith')
124
-			->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
125
-
126
-		$this->backend->updateShares($shareable, $add, []);
127
-	}
128
-
129
-	public function testUpdateShareContactsBob(): void {
130
-		$shareable = $this->createConfiguredMock(IShareable::class, [
131
-			'getOwner' => 'principals/users/alice',
132
-			'getResourceId' => 42,
133
-		]);
134
-		$add = [
135
-			[
136
-				'href' => 'principal:principals/users/bob',
137
-				'readOnly' => true,
138
-			]
139
-		];
140
-		$principal = 'principals/users/bob';
141
-
142
-		$this->shareCache->expects(self::once())
143
-			->method('clear');
144
-		$this->principalBackend->expects(self::once())
145
-			->method('findByUri')
146
-			->willReturn($principal);
147
-		$this->userManager->expects(self::once())
148
-			->method('userExists')
149
-			->willReturn(true);
150
-		$this->groupManager->expects(self::never())
151
-			->method('groupExists');
152
-		$this->calendarService->expects(self::once())
153
-			->method('shareWith')
154
-			->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
155
-
156
-		$this->backend->updateShares($shareable, $add, []);
157
-	}
158
-
159
-	public function testUpdateShareContactsGroup(): void {
160
-		$shareable = $this->createConfiguredMock(IShareable::class, [
161
-			'getOwner' => 'principals/users/alice',
162
-			'getResourceId' => 42,
163
-		]);
164
-		$add = [
165
-			[
166
-				'href' => 'principal:principals/groups/bob',
167
-				'readOnly' => true,
168
-			]
169
-		];
170
-		$principal = 'principals/groups/bob';
171
-
172
-		$this->shareCache->expects(self::once())
173
-			->method('clear');
174
-		$this->principalBackend->expects(self::once())
175
-			->method('findByUri')
176
-			->willReturn($principal);
177
-		$this->userManager->expects(self::never())
178
-			->method('userExists');
179
-		$this->groupManager->expects(self::once())
180
-			->method('groupExists')
181
-			->willReturn(true);
182
-		$this->calendarService->expects(self::once())
183
-			->method('shareWith')
184
-			->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
185
-
186
-		$this->backend->updateShares($shareable, $add, []);
187
-	}
188
-
189
-	public function testUpdateShareCircle(): void {
190
-		$shareable = $this->createConfiguredMock(IShareable::class, [
191
-			'getOwner' => 'principals/users/alice',
192
-			'getResourceId' => 42,
193
-		]);
194
-		$add = [
195
-			[
196
-				'href' => 'principal:principals/circles/bob',
197
-				'readOnly' => true,
198
-			]
199
-		];
200
-		$principal = 'principals/groups/bob';
201
-
202
-		$this->shareCache->expects(self::once())
203
-			->method('clear');
204
-		$this->principalBackend->expects(self::once())
205
-			->method('findByUri')
206
-			->willReturn($principal);
207
-		$this->userManager->expects(self::never())
208
-			->method('userExists');
209
-		$this->groupManager->expects(self::once())
210
-			->method('groupExists')
211
-			->willReturn(true);
212
-		$this->calendarService->expects(self::once())
213
-			->method('shareWith')
214
-			->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
215
-
216
-		$this->backend->updateShares($shareable, $add, []);
217
-	}
218
-
219
-	public function testUnshareBob(): void {
220
-		$shareable = $this->createConfiguredMock(IShareable::class, [
221
-			'getOwner' => 'principals/users/alice',
222
-			'getResourceId' => 42,
223
-		]);
224
-		$remove = [
225
-			'principal:principals/users/bob',
226
-		];
227
-		$principal = 'principals/users/bob';
228
-
229
-		$this->shareCache->expects(self::once())
230
-			->method('clear');
231
-		$this->principalBackend->expects(self::once())
232
-			->method('findByUri')
233
-			->willReturn($principal);
234
-		$this->calendarService->expects(self::once())
235
-			->method('deleteShare')
236
-			->with($shareable->getResourceId(), $principal);
237
-		$this->calendarService->expects(self::never())
238
-			->method('unshare');
239
-
240
-		$this->backend->updateShares($shareable, [], $remove);
241
-	}
242
-
243
-	public function testUnshareWithBobGroup(): void {
244
-		$shareable = $this->createConfiguredMock(IShareable::class, [
245
-			'getOwner' => 'principals/users/alice',
246
-			'getResourceId' => 42,
247
-		]);
248
-		$remove = [
249
-			'principal:principals/users/bob',
250
-		];
251
-		$oldShares = [
252
-			[
253
-				'href' => 'principal:principals/groups/bob',
254
-				'commonName' => 'bob',
255
-				'status' => 1,
256
-				'readOnly' => true,
257
-				'{http://owncloud.org/ns}principal' => 'principals/groups/bob',
258
-				'{http://owncloud.org/ns}group-share' => true,
259
-			]
260
-		];
261
-
262
-
263
-		$this->shareCache->expects(self::once())
264
-			->method('clear');
265
-		$this->principalBackend->expects(self::once())
266
-			->method('findByUri')
267
-			->willReturn('principals/users/bob');
268
-		$this->calendarService->expects(self::once())
269
-			->method('deleteShare')
270
-			->with($shareable->getResourceId(), 'principals/users/bob');
271
-		$this->calendarService->expects(self::never())
272
-			->method('unshare');
273
-
274
-		$this->backend->updateShares($shareable, [], $remove, $oldShares);
275
-	}
276
-
277
-	public function testGetShares(): void {
278
-		$resourceId = 42;
279
-		$principal = 'principals/groups/bob';
280
-		$rows = [
281
-			[
282
-				'principaluri' => $principal,
283
-				'access' => Backend::ACCESS_READ,
284
-			]
285
-		];
286
-		$expected = [
287
-			[
288
-				'href' => 'principal:principals/groups/bob',
289
-				'commonName' => 'bob',
290
-				'status' => 1,
291
-				'readOnly' => true,
292
-				'{http://owncloud.org/ns}principal' => $principal,
293
-				'{http://owncloud.org/ns}group-share' => true,
294
-			]
295
-		];
296
-
297
-
298
-		$this->shareCache->expects(self::once())
299
-			->method('get')
300
-			->with((string)$resourceId)
301
-			->willReturn(null);
302
-		$this->calendarService->expects(self::once())
303
-			->method('getShares')
304
-			->with($resourceId)
305
-			->willReturn($rows);
306
-		$this->principalBackend->expects(self::once())
307
-			->method('getPrincipalByPath')
308
-			->with($principal)
309
-			->willReturn(['uri' => $principal, '{DAV:}displayname' => 'bob']);
310
-		$this->shareCache->expects(self::once())
311
-			->method('set')
312
-			->with((string)$resourceId, $expected);
313
-
314
-		$result = $this->backend->getShares($resourceId);
315
-		$this->assertEquals($expected, $result);
316
-	}
317
-
318
-	public function testGetSharesAddressbooks(): void {
319
-		$service = $this->createMock(\OCA\DAV\CardDAV\Sharing\Service::class);
320
-		$backend = new ContactsSharingBackend(
321
-			$this->userManager,
322
-			$this->groupManager,
323
-			$this->principalBackend,
324
-			$this->remoteUserPrincipalBackend,
325
-			$this->cacheFactory,
326
-			$service,
327
-			$this->federationSharingService,
328
-			$this->logger);
329
-		$resourceId = 42;
330
-		$principal = 'principals/groups/bob';
331
-		$rows = [
332
-			[
333
-				'principaluri' => $principal,
334
-				'access' => Backend::ACCESS_READ,
335
-			]
336
-		];
337
-		$expected = [
338
-			[
339
-				'href' => 'principal:principals/groups/bob',
340
-				'commonName' => 'bob',
341
-				'status' => 1,
342
-				'readOnly' => true,
343
-				'{http://owncloud.org/ns}principal' => $principal,
344
-				'{http://owncloud.org/ns}group-share' => true,
345
-			]
346
-		];
347
-
348
-		$this->shareCache->expects(self::once())
349
-			->method('get')
350
-			->with((string)$resourceId)
351
-			->willReturn(null);
352
-		$service->expects(self::once())
353
-			->method('getShares')
354
-			->with($resourceId)
355
-			->willReturn($rows);
356
-		$this->principalBackend->expects(self::once())
357
-			->method('getPrincipalByPath')
358
-			->with($principal)
359
-			->willReturn(['uri' => $principal, '{DAV:}displayname' => 'bob']);
360
-		$this->shareCache->expects(self::once())
361
-			->method('set')
362
-			->with((string)$resourceId, $expected);
363
-
364
-		$result = $backend->getShares($resourceId);
365
-		$this->assertEquals($expected, $result);
366
-	}
367
-
368
-	public function testPreloadShares(): void {
369
-		$resourceIds = [42, 99];
370
-		$rows = [
371
-			[
372
-				'resourceid' => 42,
373
-				'principaluri' => 'principals/groups/bob',
374
-				'access' => Backend::ACCESS_READ,
375
-			],
376
-			[
377
-				'resourceid' => 99,
378
-				'principaluri' => 'principals/users/carlos',
379
-				'access' => Backend::ACCESS_READ_WRITE,
380
-			]
381
-		];
382
-		$principalResults = [
383
-			['uri' => 'principals/groups/bob', '{DAV:}displayname' => 'bob'],
384
-			['uri' => 'principals/users/carlos', '{DAV:}displayname' => 'carlos'],
385
-		];
386
-
387
-		$this->shareCache->expects(self::exactly(2))
388
-			->method('get')
389
-			->willReturn(null);
390
-		$this->calendarService->expects(self::once())
391
-			->method('getSharesForIds')
392
-			->with($resourceIds)
393
-			->willReturn($rows);
394
-		$this->principalBackend->expects(self::exactly(2))
395
-			->method('getPrincipalByPath')
396
-			->willReturnCallback(function (string $principal) use ($principalResults) {
397
-				switch ($principal) {
398
-					case 'principals/groups/bob':
399
-						return $principalResults[0];
400
-					default:
401
-						return $principalResults[1];
402
-				}
403
-			});
404
-		$this->shareCache->expects(self::exactly(2))
405
-			->method('set');
406
-
407
-		$this->backend->preloadShares($resourceIds);
408
-	}
29
+    private IDBConnection&MockObject $db;
30
+    private IUserManager&MockObject $userManager;
31
+    private IGroupManager&MockObject $groupManager;
32
+    private Principal&MockObject $principalBackend;
33
+    private ICache&MockObject $shareCache;
34
+    private LoggerInterface&MockObject $logger;
35
+    private ICacheFactory&MockObject $cacheFactory;
36
+    private Service&MockObject $calendarService;
37
+    private RemoteUserPrincipalBackend&MockObject $remoteUserPrincipalBackend;
38
+    private FederationSharingService&MockObject $federationSharingService;
39
+    private CalendarSharingBackend $backend;
40
+
41
+    protected function setUp(): void {
42
+        parent::setUp();
43
+        $this->db = $this->createMock(IDBConnection::class);
44
+        $this->userManager = $this->createMock(IUserManager::class);
45
+        $this->groupManager = $this->createMock(IGroupManager::class);
46
+        $this->principalBackend = $this->createMock(Principal::class);
47
+        $this->cacheFactory = $this->createMock(ICacheFactory::class);
48
+        $this->shareCache = $this->createMock(ICache::class);
49
+        $this->logger = $this->createMock(LoggerInterface::class);
50
+        $this->calendarService = $this->createMock(Service::class);
51
+        $this->cacheFactory->expects(self::any())
52
+            ->method('createInMemory')
53
+            ->willReturn($this->shareCache);
54
+        $this->remoteUserPrincipalBackend = $this->createMock(RemoteUserPrincipalBackend::class);
55
+        $this->federationSharingService = $this->createMock(FederationSharingService::class);
56
+
57
+        $this->backend = new CalendarSharingBackend(
58
+            $this->userManager,
59
+            $this->groupManager,
60
+            $this->principalBackend,
61
+            $this->remoteUserPrincipalBackend,
62
+            $this->cacheFactory,
63
+            $this->calendarService,
64
+            $this->federationSharingService,
65
+            $this->logger,
66
+        );
67
+    }
68
+
69
+    public function testUpdateShareCalendarBob(): void {
70
+        $shareable = $this->createConfiguredMock(IShareable::class, [
71
+            'getOwner' => 'principals/users/alice',
72
+            'getResourceId' => 42,
73
+        ]);
74
+        $add = [
75
+            [
76
+                'href' => 'principal:principals/users/bob',
77
+                'readOnly' => true,
78
+            ]
79
+        ];
80
+        $principal = 'principals/users/bob';
81
+
82
+        $this->shareCache->expects(self::once())
83
+            ->method('clear');
84
+        $this->principalBackend->expects(self::once())
85
+            ->method('findByUri')
86
+            ->willReturn($principal);
87
+        $this->userManager->expects(self::once())
88
+            ->method('userExists')
89
+            ->willReturn(true);
90
+        $this->groupManager->expects(self::never())
91
+            ->method('groupExists');
92
+        $this->calendarService->expects(self::once())
93
+            ->method('shareWith')
94
+            ->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
95
+
96
+        $this->backend->updateShares($shareable, $add, []);
97
+    }
98
+
99
+    public function testUpdateShareCalendarGroup(): void {
100
+        $shareable = $this->createConfiguredMock(IShareable::class, [
101
+            'getOwner' => 'principals/users/alice',
102
+            'getResourceId' => 42,
103
+        ]);
104
+        $add = [
105
+            [
106
+                'href' => 'principal:principals/groups/bob',
107
+                'readOnly' => true,
108
+            ]
109
+        ];
110
+        $principal = 'principals/groups/bob';
111
+
112
+        $this->shareCache->expects(self::once())
113
+            ->method('clear');
114
+        $this->principalBackend->expects(self::once())
115
+            ->method('findByUri')
116
+            ->willReturn($principal);
117
+        $this->userManager->expects(self::never())
118
+            ->method('userExists');
119
+        $this->groupManager->expects(self::once())
120
+            ->method('groupExists')
121
+            ->willReturn(true);
122
+        $this->calendarService->expects(self::once())
123
+            ->method('shareWith')
124
+            ->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
125
+
126
+        $this->backend->updateShares($shareable, $add, []);
127
+    }
128
+
129
+    public function testUpdateShareContactsBob(): void {
130
+        $shareable = $this->createConfiguredMock(IShareable::class, [
131
+            'getOwner' => 'principals/users/alice',
132
+            'getResourceId' => 42,
133
+        ]);
134
+        $add = [
135
+            [
136
+                'href' => 'principal:principals/users/bob',
137
+                'readOnly' => true,
138
+            ]
139
+        ];
140
+        $principal = 'principals/users/bob';
141
+
142
+        $this->shareCache->expects(self::once())
143
+            ->method('clear');
144
+        $this->principalBackend->expects(self::once())
145
+            ->method('findByUri')
146
+            ->willReturn($principal);
147
+        $this->userManager->expects(self::once())
148
+            ->method('userExists')
149
+            ->willReturn(true);
150
+        $this->groupManager->expects(self::never())
151
+            ->method('groupExists');
152
+        $this->calendarService->expects(self::once())
153
+            ->method('shareWith')
154
+            ->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
155
+
156
+        $this->backend->updateShares($shareable, $add, []);
157
+    }
158
+
159
+    public function testUpdateShareContactsGroup(): void {
160
+        $shareable = $this->createConfiguredMock(IShareable::class, [
161
+            'getOwner' => 'principals/users/alice',
162
+            'getResourceId' => 42,
163
+        ]);
164
+        $add = [
165
+            [
166
+                'href' => 'principal:principals/groups/bob',
167
+                'readOnly' => true,
168
+            ]
169
+        ];
170
+        $principal = 'principals/groups/bob';
171
+
172
+        $this->shareCache->expects(self::once())
173
+            ->method('clear');
174
+        $this->principalBackend->expects(self::once())
175
+            ->method('findByUri')
176
+            ->willReturn($principal);
177
+        $this->userManager->expects(self::never())
178
+            ->method('userExists');
179
+        $this->groupManager->expects(self::once())
180
+            ->method('groupExists')
181
+            ->willReturn(true);
182
+        $this->calendarService->expects(self::once())
183
+            ->method('shareWith')
184
+            ->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
185
+
186
+        $this->backend->updateShares($shareable, $add, []);
187
+    }
188
+
189
+    public function testUpdateShareCircle(): void {
190
+        $shareable = $this->createConfiguredMock(IShareable::class, [
191
+            'getOwner' => 'principals/users/alice',
192
+            'getResourceId' => 42,
193
+        ]);
194
+        $add = [
195
+            [
196
+                'href' => 'principal:principals/circles/bob',
197
+                'readOnly' => true,
198
+            ]
199
+        ];
200
+        $principal = 'principals/groups/bob';
201
+
202
+        $this->shareCache->expects(self::once())
203
+            ->method('clear');
204
+        $this->principalBackend->expects(self::once())
205
+            ->method('findByUri')
206
+            ->willReturn($principal);
207
+        $this->userManager->expects(self::never())
208
+            ->method('userExists');
209
+        $this->groupManager->expects(self::once())
210
+            ->method('groupExists')
211
+            ->willReturn(true);
212
+        $this->calendarService->expects(self::once())
213
+            ->method('shareWith')
214
+            ->with($shareable->getResourceId(), $principal, Backend::ACCESS_READ);
215
+
216
+        $this->backend->updateShares($shareable, $add, []);
217
+    }
218
+
219
+    public function testUnshareBob(): void {
220
+        $shareable = $this->createConfiguredMock(IShareable::class, [
221
+            'getOwner' => 'principals/users/alice',
222
+            'getResourceId' => 42,
223
+        ]);
224
+        $remove = [
225
+            'principal:principals/users/bob',
226
+        ];
227
+        $principal = 'principals/users/bob';
228
+
229
+        $this->shareCache->expects(self::once())
230
+            ->method('clear');
231
+        $this->principalBackend->expects(self::once())
232
+            ->method('findByUri')
233
+            ->willReturn($principal);
234
+        $this->calendarService->expects(self::once())
235
+            ->method('deleteShare')
236
+            ->with($shareable->getResourceId(), $principal);
237
+        $this->calendarService->expects(self::never())
238
+            ->method('unshare');
239
+
240
+        $this->backend->updateShares($shareable, [], $remove);
241
+    }
242
+
243
+    public function testUnshareWithBobGroup(): void {
244
+        $shareable = $this->createConfiguredMock(IShareable::class, [
245
+            'getOwner' => 'principals/users/alice',
246
+            'getResourceId' => 42,
247
+        ]);
248
+        $remove = [
249
+            'principal:principals/users/bob',
250
+        ];
251
+        $oldShares = [
252
+            [
253
+                'href' => 'principal:principals/groups/bob',
254
+                'commonName' => 'bob',
255
+                'status' => 1,
256
+                'readOnly' => true,
257
+                '{http://owncloud.org/ns}principal' => 'principals/groups/bob',
258
+                '{http://owncloud.org/ns}group-share' => true,
259
+            ]
260
+        ];
261
+
262
+
263
+        $this->shareCache->expects(self::once())
264
+            ->method('clear');
265
+        $this->principalBackend->expects(self::once())
266
+            ->method('findByUri')
267
+            ->willReturn('principals/users/bob');
268
+        $this->calendarService->expects(self::once())
269
+            ->method('deleteShare')
270
+            ->with($shareable->getResourceId(), 'principals/users/bob');
271
+        $this->calendarService->expects(self::never())
272
+            ->method('unshare');
273
+
274
+        $this->backend->updateShares($shareable, [], $remove, $oldShares);
275
+    }
276
+
277
+    public function testGetShares(): void {
278
+        $resourceId = 42;
279
+        $principal = 'principals/groups/bob';
280
+        $rows = [
281
+            [
282
+                'principaluri' => $principal,
283
+                'access' => Backend::ACCESS_READ,
284
+            ]
285
+        ];
286
+        $expected = [
287
+            [
288
+                'href' => 'principal:principals/groups/bob',
289
+                'commonName' => 'bob',
290
+                'status' => 1,
291
+                'readOnly' => true,
292
+                '{http://owncloud.org/ns}principal' => $principal,
293
+                '{http://owncloud.org/ns}group-share' => true,
294
+            ]
295
+        ];
296
+
297
+
298
+        $this->shareCache->expects(self::once())
299
+            ->method('get')
300
+            ->with((string)$resourceId)
301
+            ->willReturn(null);
302
+        $this->calendarService->expects(self::once())
303
+            ->method('getShares')
304
+            ->with($resourceId)
305
+            ->willReturn($rows);
306
+        $this->principalBackend->expects(self::once())
307
+            ->method('getPrincipalByPath')
308
+            ->with($principal)
309
+            ->willReturn(['uri' => $principal, '{DAV:}displayname' => 'bob']);
310
+        $this->shareCache->expects(self::once())
311
+            ->method('set')
312
+            ->with((string)$resourceId, $expected);
313
+
314
+        $result = $this->backend->getShares($resourceId);
315
+        $this->assertEquals($expected, $result);
316
+    }
317
+
318
+    public function testGetSharesAddressbooks(): void {
319
+        $service = $this->createMock(\OCA\DAV\CardDAV\Sharing\Service::class);
320
+        $backend = new ContactsSharingBackend(
321
+            $this->userManager,
322
+            $this->groupManager,
323
+            $this->principalBackend,
324
+            $this->remoteUserPrincipalBackend,
325
+            $this->cacheFactory,
326
+            $service,
327
+            $this->federationSharingService,
328
+            $this->logger);
329
+        $resourceId = 42;
330
+        $principal = 'principals/groups/bob';
331
+        $rows = [
332
+            [
333
+                'principaluri' => $principal,
334
+                'access' => Backend::ACCESS_READ,
335
+            ]
336
+        ];
337
+        $expected = [
338
+            [
339
+                'href' => 'principal:principals/groups/bob',
340
+                'commonName' => 'bob',
341
+                'status' => 1,
342
+                'readOnly' => true,
343
+                '{http://owncloud.org/ns}principal' => $principal,
344
+                '{http://owncloud.org/ns}group-share' => true,
345
+            ]
346
+        ];
347
+
348
+        $this->shareCache->expects(self::once())
349
+            ->method('get')
350
+            ->with((string)$resourceId)
351
+            ->willReturn(null);
352
+        $service->expects(self::once())
353
+            ->method('getShares')
354
+            ->with($resourceId)
355
+            ->willReturn($rows);
356
+        $this->principalBackend->expects(self::once())
357
+            ->method('getPrincipalByPath')
358
+            ->with($principal)
359
+            ->willReturn(['uri' => $principal, '{DAV:}displayname' => 'bob']);
360
+        $this->shareCache->expects(self::once())
361
+            ->method('set')
362
+            ->with((string)$resourceId, $expected);
363
+
364
+        $result = $backend->getShares($resourceId);
365
+        $this->assertEquals($expected, $result);
366
+    }
367
+
368
+    public function testPreloadShares(): void {
369
+        $resourceIds = [42, 99];
370
+        $rows = [
371
+            [
372
+                'resourceid' => 42,
373
+                'principaluri' => 'principals/groups/bob',
374
+                'access' => Backend::ACCESS_READ,
375
+            ],
376
+            [
377
+                'resourceid' => 99,
378
+                'principaluri' => 'principals/users/carlos',
379
+                'access' => Backend::ACCESS_READ_WRITE,
380
+            ]
381
+        ];
382
+        $principalResults = [
383
+            ['uri' => 'principals/groups/bob', '{DAV:}displayname' => 'bob'],
384
+            ['uri' => 'principals/users/carlos', '{DAV:}displayname' => 'carlos'],
385
+        ];
386
+
387
+        $this->shareCache->expects(self::exactly(2))
388
+            ->method('get')
389
+            ->willReturn(null);
390
+        $this->calendarService->expects(self::once())
391
+            ->method('getSharesForIds')
392
+            ->with($resourceIds)
393
+            ->willReturn($rows);
394
+        $this->principalBackend->expects(self::exactly(2))
395
+            ->method('getPrincipalByPath')
396
+            ->willReturnCallback(function (string $principal) use ($principalResults) {
397
+                switch ($principal) {
398
+                    case 'principals/groups/bob':
399
+                        return $principalResults[0];
400
+                    default:
401
+                        return $principalResults[1];
402
+                }
403
+            });
404
+        $this->shareCache->expects(self::exactly(2))
405
+            ->method('set');
406
+
407
+        $this->backend->preloadShares($resourceIds);
408
+    }
409 409
 }
Please login to merge, or discard this patch.
apps/dav/tests/unit/CardDAV/SyncServiceTest.php 1 patch
Indentation   +371 added lines, -371 removed lines patch added patch discarded remove patch
@@ -29,103 +29,103 @@  discard block
 block discarded – undo
29 29
 
30 30
 class SyncServiceTest extends TestCase {
31 31
 
32
-	protected CardDavBackend&MockObject $backend;
33
-	protected IUserManager&MockObject $userManager;
34
-	protected IDBConnection&MockObject $dbConnection;
35
-	protected LoggerInterface $logger;
36
-	protected Converter&MockObject $converter;
37
-	protected IClient&MockObject $client;
38
-	protected IConfig&MockObject $config;
39
-	protected SyncService $service;
40
-
41
-	public function setUp(): void {
42
-		parent::setUp();
43
-
44
-		$addressBook = [
45
-			'id' => 1,
46
-			'uri' => 'system',
47
-			'principaluri' => 'principals/system/system',
48
-			'{DAV:}displayname' => 'system',
49
-			// watch out, incomplete address book mock.
50
-		];
51
-
52
-		$this->backend = $this->createMock(CardDavBackend::class);
53
-		$this->backend->method('getAddressBooksByUri')
54
-			->with('principals/system/system', 1)
55
-			->willReturn($addressBook);
56
-
57
-		$this->userManager = $this->createMock(IUserManager::class);
58
-		$this->dbConnection = $this->createMock(IDBConnection::class);
59
-		$this->logger = new NullLogger();
60
-		$this->converter = $this->createMock(Converter::class);
61
-		$this->client = $this->createMock(IClient::class);
62
-		$this->config = $this->createMock(IConfig::class);
63
-
64
-		$clientService = $this->createMock(IClientService::class);
65
-		$clientService->method('newClient')
66
-			->willReturn($this->client);
67
-
68
-		$this->service = new SyncService(
69
-			$clientService,
70
-			$this->config,
71
-			$this->backend,
72
-			$this->userManager,
73
-			$this->dbConnection,
74
-			$this->logger,
75
-			$this->converter,
76
-		);
77
-	}
78
-
79
-	public function testEmptySync(): void {
80
-		$this->backend->expects($this->exactly(0))
81
-			->method('createCard');
82
-		$this->backend->expects($this->exactly(0))
83
-			->method('updateCard');
84
-		$this->backend->expects($this->exactly(0))
85
-			->method('deleteCard');
86
-
87
-		$body = '<?xml version="1.0"?>
32
+    protected CardDavBackend&MockObject $backend;
33
+    protected IUserManager&MockObject $userManager;
34
+    protected IDBConnection&MockObject $dbConnection;
35
+    protected LoggerInterface $logger;
36
+    protected Converter&MockObject $converter;
37
+    protected IClient&MockObject $client;
38
+    protected IConfig&MockObject $config;
39
+    protected SyncService $service;
40
+
41
+    public function setUp(): void {
42
+        parent::setUp();
43
+
44
+        $addressBook = [
45
+            'id' => 1,
46
+            'uri' => 'system',
47
+            'principaluri' => 'principals/system/system',
48
+            '{DAV:}displayname' => 'system',
49
+            // watch out, incomplete address book mock.
50
+        ];
51
+
52
+        $this->backend = $this->createMock(CardDavBackend::class);
53
+        $this->backend->method('getAddressBooksByUri')
54
+            ->with('principals/system/system', 1)
55
+            ->willReturn($addressBook);
56
+
57
+        $this->userManager = $this->createMock(IUserManager::class);
58
+        $this->dbConnection = $this->createMock(IDBConnection::class);
59
+        $this->logger = new NullLogger();
60
+        $this->converter = $this->createMock(Converter::class);
61
+        $this->client = $this->createMock(IClient::class);
62
+        $this->config = $this->createMock(IConfig::class);
63
+
64
+        $clientService = $this->createMock(IClientService::class);
65
+        $clientService->method('newClient')
66
+            ->willReturn($this->client);
67
+
68
+        $this->service = new SyncService(
69
+            $clientService,
70
+            $this->config,
71
+            $this->backend,
72
+            $this->userManager,
73
+            $this->dbConnection,
74
+            $this->logger,
75
+            $this->converter,
76
+        );
77
+    }
78
+
79
+    public function testEmptySync(): void {
80
+        $this->backend->expects($this->exactly(0))
81
+            ->method('createCard');
82
+        $this->backend->expects($this->exactly(0))
83
+            ->method('updateCard');
84
+        $this->backend->expects($this->exactly(0))
85
+            ->method('deleteCard');
86
+
87
+        $body = '<?xml version="1.0"?>
88 88
 <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:oc="http://owncloud.org/ns">
89 89
     <d:sync-token>http://sabre.io/ns/sync/1</d:sync-token>
90 90
 </d:multistatus>';
91 91
 
92
-		$requestResponse = new Response(new PsrResponse(
93
-			207,
94
-			['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
95
-			$body
96
-		));
97
-
98
-		$this->client
99
-			->method('request')
100
-			->willReturn($requestResponse);
101
-
102
-		$token = $this->service->syncRemoteAddressBook(
103
-			'',
104
-			'system',
105
-			'system',
106
-			'1234567890',
107
-			null,
108
-			'1',
109
-			'principals/system/system',
110
-			[]
111
-		)[0];
112
-
113
-		$this->assertEquals('http://sabre.io/ns/sync/1', $token);
114
-	}
115
-
116
-	public function testSyncWithNewElement(): void {
117
-		$this->backend->expects($this->exactly(1))
118
-			->method('createCard');
119
-		$this->backend->expects($this->exactly(0))
120
-			->method('updateCard');
121
-		$this->backend->expects($this->exactly(0))
122
-			->method('deleteCard');
123
-
124
-		$this->backend->method('getCard')
125
-			->willReturn(false);
126
-
127
-
128
-		$body = '<?xml version="1.0"?>
92
+        $requestResponse = new Response(new PsrResponse(
93
+            207,
94
+            ['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
95
+            $body
96
+        ));
97
+
98
+        $this->client
99
+            ->method('request')
100
+            ->willReturn($requestResponse);
101
+
102
+        $token = $this->service->syncRemoteAddressBook(
103
+            '',
104
+            'system',
105
+            'system',
106
+            '1234567890',
107
+            null,
108
+            '1',
109
+            'principals/system/system',
110
+            []
111
+        )[0];
112
+
113
+        $this->assertEquals('http://sabre.io/ns/sync/1', $token);
114
+    }
115
+
116
+    public function testSyncWithNewElement(): void {
117
+        $this->backend->expects($this->exactly(1))
118
+            ->method('createCard');
119
+        $this->backend->expects($this->exactly(0))
120
+            ->method('updateCard');
121
+        $this->backend->expects($this->exactly(0))
122
+            ->method('deleteCard');
123
+
124
+        $this->backend->method('getCard')
125
+            ->willReturn(false);
126
+
127
+
128
+        $body = '<?xml version="1.0"?>
129 129
 <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:oc="http://owncloud.org/ns">
130 130
     <d:response>
131 131
         <d:href>/remote.php/dav/addressbooks/system/system/system/Database:alice.vcf</d:href>
@@ -140,17 +140,17 @@  discard block
 block discarded – undo
140 140
     <d:sync-token>http://sabre.io/ns/sync/2</d:sync-token>
141 141
 </d:multistatus>';
142 142
 
143
-		$reportResponse = new Response(new PsrResponse(
144
-			207,
145
-			['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
146
-			$body
147
-		));
143
+        $reportResponse = new Response(new PsrResponse(
144
+            207,
145
+            ['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
146
+            $body
147
+        ));
148 148
 
149
-		$this->client
150
-			->method('request')
151
-			->willReturn($reportResponse);
149
+        $this->client
150
+            ->method('request')
151
+            ->willReturn($reportResponse);
152 152
 
153
-		$vCard = 'BEGIN:VCARD
153
+        $vCard = 'BEGIN:VCARD
154 154
 VERSION:3.0
155 155
 PRODID:-//Sabre//Sabre VObject 4.5.4//EN
156 156
 UID:alice
@@ -160,43 +160,43 @@  discard block
 block discarded – undo
160 160
 CLOUD:[email protected]
161 161
 END:VCARD';
162 162
 
163
-		$getResponse = new Response(new PsrResponse(
164
-			200,
165
-			['Content-Type' => 'text/vcard; charset=utf-8', 'Content-Length' => strlen($vCard)],
166
-			$vCard,
167
-		));
168
-
169
-		$this->client
170
-			->method('get')
171
-			->willReturn($getResponse);
172
-
173
-		$token = $this->service->syncRemoteAddressBook(
174
-			'',
175
-			'system',
176
-			'system',
177
-			'1234567890',
178
-			null,
179
-			'1',
180
-			'principals/system/system',
181
-			[]
182
-		)[0];
183
-
184
-		$this->assertEquals('http://sabre.io/ns/sync/2', $token);
185
-	}
186
-
187
-	public function testSyncWithUpdatedElement(): void {
188
-		$this->backend->expects($this->exactly(0))
189
-			->method('createCard');
190
-		$this->backend->expects($this->exactly(1))
191
-			->method('updateCard');
192
-		$this->backend->expects($this->exactly(0))
193
-			->method('deleteCard');
194
-
195
-		$this->backend->method('getCard')
196
-			->willReturn(true);
197
-
198
-
199
-		$body = '<?xml version="1.0"?>
163
+        $getResponse = new Response(new PsrResponse(
164
+            200,
165
+            ['Content-Type' => 'text/vcard; charset=utf-8', 'Content-Length' => strlen($vCard)],
166
+            $vCard,
167
+        ));
168
+
169
+        $this->client
170
+            ->method('get')
171
+            ->willReturn($getResponse);
172
+
173
+        $token = $this->service->syncRemoteAddressBook(
174
+            '',
175
+            'system',
176
+            'system',
177
+            '1234567890',
178
+            null,
179
+            '1',
180
+            'principals/system/system',
181
+            []
182
+        )[0];
183
+
184
+        $this->assertEquals('http://sabre.io/ns/sync/2', $token);
185
+    }
186
+
187
+    public function testSyncWithUpdatedElement(): void {
188
+        $this->backend->expects($this->exactly(0))
189
+            ->method('createCard');
190
+        $this->backend->expects($this->exactly(1))
191
+            ->method('updateCard');
192
+        $this->backend->expects($this->exactly(0))
193
+            ->method('deleteCard');
194
+
195
+        $this->backend->method('getCard')
196
+            ->willReturn(true);
197
+
198
+
199
+        $body = '<?xml version="1.0"?>
200 200
 <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:oc="http://owncloud.org/ns">
201 201
     <d:response>
202 202
         <d:href>/remote.php/dav/addressbooks/system/system/system/Database:alice.vcf</d:href>
@@ -211,17 +211,17 @@  discard block
 block discarded – undo
211 211
     <d:sync-token>http://sabre.io/ns/sync/3</d:sync-token>
212 212
 </d:multistatus>';
213 213
 
214
-		$reportResponse = new Response(new PsrResponse(
215
-			207,
216
-			['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
217
-			$body
218
-		));
214
+        $reportResponse = new Response(new PsrResponse(
215
+            207,
216
+            ['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
217
+            $body
218
+        ));
219 219
 
220
-		$this->client
221
-			->method('request')
222
-			->willReturn($reportResponse);
220
+        $this->client
221
+            ->method('request')
222
+            ->willReturn($reportResponse);
223 223
 
224
-		$vCard = 'BEGIN:VCARD
224
+        $vCard = 'BEGIN:VCARD
225 225
 VERSION:3.0
226 226
 PRODID:-//Sabre//Sabre VObject 4.5.4//EN
227 227
 UID:alice
@@ -231,39 +231,39 @@  discard block
 block discarded – undo
231 231
 CLOUD:[email protected]
232 232
 END:VCARD';
233 233
 
234
-		$getResponse = new Response(new PsrResponse(
235
-			200,
236
-			['Content-Type' => 'text/vcard; charset=utf-8', 'Content-Length' => strlen($vCard)],
237
-			$vCard,
238
-		));
239
-
240
-		$this->client
241
-			->method('get')
242
-			->willReturn($getResponse);
243
-
244
-		$token = $this->service->syncRemoteAddressBook(
245
-			'',
246
-			'system',
247
-			'system',
248
-			'1234567890',
249
-			null,
250
-			'1',
251
-			'principals/system/system',
252
-			[]
253
-		)[0];
254
-
255
-		$this->assertEquals('http://sabre.io/ns/sync/3', $token);
256
-	}
257
-
258
-	public function testSyncWithDeletedElement(): void {
259
-		$this->backend->expects($this->exactly(0))
260
-			->method('createCard');
261
-		$this->backend->expects($this->exactly(0))
262
-			->method('updateCard');
263
-		$this->backend->expects($this->exactly(1))
264
-			->method('deleteCard');
265
-
266
-		$body = '<?xml version="1.0"?>
234
+        $getResponse = new Response(new PsrResponse(
235
+            200,
236
+            ['Content-Type' => 'text/vcard; charset=utf-8', 'Content-Length' => strlen($vCard)],
237
+            $vCard,
238
+        ));
239
+
240
+        $this->client
241
+            ->method('get')
242
+            ->willReturn($getResponse);
243
+
244
+        $token = $this->service->syncRemoteAddressBook(
245
+            '',
246
+            'system',
247
+            'system',
248
+            '1234567890',
249
+            null,
250
+            '1',
251
+            'principals/system/system',
252
+            []
253
+        )[0];
254
+
255
+        $this->assertEquals('http://sabre.io/ns/sync/3', $token);
256
+    }
257
+
258
+    public function testSyncWithDeletedElement(): void {
259
+        $this->backend->expects($this->exactly(0))
260
+            ->method('createCard');
261
+        $this->backend->expects($this->exactly(0))
262
+            ->method('updateCard');
263
+        $this->backend->expects($this->exactly(1))
264
+            ->method('deleteCard');
265
+
266
+        $body = '<?xml version="1.0"?>
267 267
 <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:oc="http://owncloud.org/ns">
268 268
 <d:response>
269 269
     <d:href>/remote.php/dav/addressbooks/system/system/system/Database:alice.vcf</d:href>
@@ -272,209 +272,209 @@  discard block
 block discarded – undo
272 272
 <d:sync-token>http://sabre.io/ns/sync/4</d:sync-token>
273 273
 </d:multistatus>';
274 274
 
275
-		$reportResponse = new Response(new PsrResponse(
276
-			207,
277
-			['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
278
-			$body
279
-		));
280
-
281
-		$this->client
282
-			->method('request')
283
-			->willReturn($reportResponse);
284
-
285
-		$token = $this->service->syncRemoteAddressBook(
286
-			'',
287
-			'system',
288
-			'system',
289
-			'1234567890',
290
-			null,
291
-			'1',
292
-			'principals/system/system',
293
-			[]
294
-		)[0];
295
-
296
-		$this->assertEquals('http://sabre.io/ns/sync/4', $token);
297
-	}
298
-
299
-	public function testEnsureSystemAddressBookExists(): void {
300
-		/** @var CardDavBackend&MockObject $backend */
301
-		$backend = $this->createMock(CardDavBackend::class);
302
-		$backend->expects($this->exactly(1))->method('createAddressBook');
303
-		$backend->expects($this->exactly(2))
304
-			->method('getAddressBooksByUri')
305
-			->willReturnOnConsecutiveCalls(
306
-				null,
307
-				[],
308
-			);
309
-
310
-		$userManager = $this->createMock(IUserManager::class);
311
-		$dbConnection = $this->createMock(IDBConnection::class);
312
-		$logger = $this->createMock(LoggerInterface::class);
313
-		$converter = $this->createMock(Converter::class);
314
-		$clientService = $this->createMock(IClientService::class);
315
-		$config = $this->createMock(IConfig::class);
316
-
317
-		$ss = new SyncService($clientService, $config, $backend, $userManager, $dbConnection, $logger, $converter);
318
-		$ss->ensureSystemAddressBookExists('principals/users/adam', 'contacts', []);
319
-	}
320
-
321
-	public static function dataActivatedUsers(): array {
322
-		return [
323
-			[true, 1, 1, 1],
324
-			[false, 0, 0, 3],
325
-		];
326
-	}
327
-
328
-	#[\PHPUnit\Framework\Attributes\DataProvider('dataActivatedUsers')]
329
-	public function testUpdateAndDeleteUser(bool $activated, int $createCalls, int $updateCalls, int $deleteCalls): void {
330
-		/** @var CardDavBackend | MockObject $backend */
331
-		$backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
332
-		$logger = $this->getMockBuilder(LoggerInterface::class)->disableOriginalConstructor()->getMock();
333
-
334
-		$backend->expects($this->exactly($createCalls))->method('createCard');
335
-		$backend->expects($this->exactly($updateCalls))->method('updateCard');
336
-		$backend->expects($this->exactly($deleteCalls))->method('deleteCard');
337
-
338
-		$backend->method('getCard')->willReturnOnConsecutiveCalls(false, [
339
-			'carddata' => "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Sabre//Sabre VObject 3.4.8//EN\r\nUID:test-user\r\nFN:test-user\r\nN:test-user;;;;\r\nEND:VCARD\r\n\r\n"
340
-		]);
341
-
342
-		$backend->method('getAddressBooksByUri')
343
-			->with('principals/system/system', 'system')
344
-			->willReturn(['id' => -1]);
345
-
346
-		$userManager = $this->createMock(IUserManager::class);
347
-		$dbConnection = $this->createMock(IDBConnection::class);
348
-		$user = $this->createMock(IUser::class);
349
-		$user->method('getBackendClassName')->willReturn('unittest');
350
-		$user->method('getUID')->willReturn('test-user');
351
-		$user->method('getCloudId')->willReturn('cloudId');
352
-		$user->method('getDisplayName')->willReturn('test-user');
353
-		$user->method('isEnabled')->willReturn($activated);
354
-		$converter = $this->createMock(Converter::class);
355
-		$converter->expects($this->any())
356
-			->method('createCardFromUser')
357
-			->willReturn($this->createMock(VCard::class));
358
-
359
-		$clientService = $this->createMock(IClientService::class);
360
-		$config = $this->createMock(IConfig::class);
361
-
362
-		$ss = new SyncService($clientService, $config, $backend, $userManager, $dbConnection, $logger, $converter);
363
-		$ss->updateUser($user);
364
-
365
-		$ss->updateUser($user);
366
-
367
-		$ss->deleteUser($user);
368
-	}
369
-
370
-	public function testDeleteAddressbookWhenAccessRevoked(): void {
371
-		$this->expectException(ClientExceptionInterface::class);
372
-
373
-		$this->backend->expects($this->exactly(0))
374
-			->method('createCard');
375
-		$this->backend->expects($this->exactly(0))
376
-			->method('updateCard');
377
-		$this->backend->expects($this->exactly(0))
378
-			->method('deleteCard');
379
-		$this->backend->expects($this->exactly(1))
380
-			->method('deleteAddressBook');
381
-
382
-		$request = new PsrRequest(
383
-			'REPORT',
384
-			'https://server2.internal/remote.php/dav/addressbooks/system/system/system',
385
-			['Content-Type' => 'application/xml'],
386
-		);
387
-
388
-		$body = '<?xml version="1.0" encoding="utf-8"?>
275
+        $reportResponse = new Response(new PsrResponse(
276
+            207,
277
+            ['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
278
+            $body
279
+        ));
280
+
281
+        $this->client
282
+            ->method('request')
283
+            ->willReturn($reportResponse);
284
+
285
+        $token = $this->service->syncRemoteAddressBook(
286
+            '',
287
+            'system',
288
+            'system',
289
+            '1234567890',
290
+            null,
291
+            '1',
292
+            'principals/system/system',
293
+            []
294
+        )[0];
295
+
296
+        $this->assertEquals('http://sabre.io/ns/sync/4', $token);
297
+    }
298
+
299
+    public function testEnsureSystemAddressBookExists(): void {
300
+        /** @var CardDavBackend&MockObject $backend */
301
+        $backend = $this->createMock(CardDavBackend::class);
302
+        $backend->expects($this->exactly(1))->method('createAddressBook');
303
+        $backend->expects($this->exactly(2))
304
+            ->method('getAddressBooksByUri')
305
+            ->willReturnOnConsecutiveCalls(
306
+                null,
307
+                [],
308
+            );
309
+
310
+        $userManager = $this->createMock(IUserManager::class);
311
+        $dbConnection = $this->createMock(IDBConnection::class);
312
+        $logger = $this->createMock(LoggerInterface::class);
313
+        $converter = $this->createMock(Converter::class);
314
+        $clientService = $this->createMock(IClientService::class);
315
+        $config = $this->createMock(IConfig::class);
316
+
317
+        $ss = new SyncService($clientService, $config, $backend, $userManager, $dbConnection, $logger, $converter);
318
+        $ss->ensureSystemAddressBookExists('principals/users/adam', 'contacts', []);
319
+    }
320
+
321
+    public static function dataActivatedUsers(): array {
322
+        return [
323
+            [true, 1, 1, 1],
324
+            [false, 0, 0, 3],
325
+        ];
326
+    }
327
+
328
+    #[\PHPUnit\Framework\Attributes\DataProvider('dataActivatedUsers')]
329
+    public function testUpdateAndDeleteUser(bool $activated, int $createCalls, int $updateCalls, int $deleteCalls): void {
330
+        /** @var CardDavBackend | MockObject $backend */
331
+        $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock();
332
+        $logger = $this->getMockBuilder(LoggerInterface::class)->disableOriginalConstructor()->getMock();
333
+
334
+        $backend->expects($this->exactly($createCalls))->method('createCard');
335
+        $backend->expects($this->exactly($updateCalls))->method('updateCard');
336
+        $backend->expects($this->exactly($deleteCalls))->method('deleteCard');
337
+
338
+        $backend->method('getCard')->willReturnOnConsecutiveCalls(false, [
339
+            'carddata' => "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Sabre//Sabre VObject 3.4.8//EN\r\nUID:test-user\r\nFN:test-user\r\nN:test-user;;;;\r\nEND:VCARD\r\n\r\n"
340
+        ]);
341
+
342
+        $backend->method('getAddressBooksByUri')
343
+            ->with('principals/system/system', 'system')
344
+            ->willReturn(['id' => -1]);
345
+
346
+        $userManager = $this->createMock(IUserManager::class);
347
+        $dbConnection = $this->createMock(IDBConnection::class);
348
+        $user = $this->createMock(IUser::class);
349
+        $user->method('getBackendClassName')->willReturn('unittest');
350
+        $user->method('getUID')->willReturn('test-user');
351
+        $user->method('getCloudId')->willReturn('cloudId');
352
+        $user->method('getDisplayName')->willReturn('test-user');
353
+        $user->method('isEnabled')->willReturn($activated);
354
+        $converter = $this->createMock(Converter::class);
355
+        $converter->expects($this->any())
356
+            ->method('createCardFromUser')
357
+            ->willReturn($this->createMock(VCard::class));
358
+
359
+        $clientService = $this->createMock(IClientService::class);
360
+        $config = $this->createMock(IConfig::class);
361
+
362
+        $ss = new SyncService($clientService, $config, $backend, $userManager, $dbConnection, $logger, $converter);
363
+        $ss->updateUser($user);
364
+
365
+        $ss->updateUser($user);
366
+
367
+        $ss->deleteUser($user);
368
+    }
369
+
370
+    public function testDeleteAddressbookWhenAccessRevoked(): void {
371
+        $this->expectException(ClientExceptionInterface::class);
372
+
373
+        $this->backend->expects($this->exactly(0))
374
+            ->method('createCard');
375
+        $this->backend->expects($this->exactly(0))
376
+            ->method('updateCard');
377
+        $this->backend->expects($this->exactly(0))
378
+            ->method('deleteCard');
379
+        $this->backend->expects($this->exactly(1))
380
+            ->method('deleteAddressBook');
381
+
382
+        $request = new PsrRequest(
383
+            'REPORT',
384
+            'https://server2.internal/remote.php/dav/addressbooks/system/system/system',
385
+            ['Content-Type' => 'application/xml'],
386
+        );
387
+
388
+        $body = '<?xml version="1.0" encoding="utf-8"?>
389 389
 <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
390 390
   <s:exception>Sabre\DAV\Exception\NotAuthenticated</s:exception>
391 391
   <s:message>No public access to this resource., Username or password was incorrect, No \'Authorization: Bearer\' header found. Either the client didn\'t send one, or the server is mis-configured, Username or password was incorrect</s:message>
392 392
 </d:error>';
393 393
 
394
-		$response = new PsrResponse(
395
-			401,
396
-			['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
397
-			$body
398
-		);
394
+        $response = new PsrResponse(
395
+            401,
396
+            ['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
397
+            $body
398
+        );
399 399
 
400
-		$message = 'Client error: `REPORT https://server2.internal/cloud/remote.php/dav/addressbooks/system/system/system` resulted in a `401 Unauthorized` response:
400
+        $message = 'Client error: `REPORT https://server2.internal/cloud/remote.php/dav/addressbooks/system/system/system` resulted in a `401 Unauthorized` response:
401 401
 <?xml version="1.0" encoding="utf-8"?>
402 402
 <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
403 403
   <s:exception>Sabre\DA (truncated...)
404 404
 ';
405 405
 
406
-		$reportException = new ClientException(
407
-			$message,
408
-			$request,
409
-			$response
410
-		);
411
-
412
-		$this->client
413
-			->method('request')
414
-			->willThrowException($reportException);
415
-
416
-		$this->service->syncRemoteAddressBook(
417
-			'',
418
-			'system',
419
-			'system',
420
-			'1234567890',
421
-			null,
422
-			'1',
423
-			'principals/system/system',
424
-			[]
425
-		);
426
-	}
427
-
428
-	#[\PHPUnit\Framework\Attributes\DataProvider('providerUseAbsoluteUriReport')]
429
-	public function testUseAbsoluteUriReport(string $host, string $expected): void {
430
-		$body = '<?xml version="1.0"?>
406
+        $reportException = new ClientException(
407
+            $message,
408
+            $request,
409
+            $response
410
+        );
411
+
412
+        $this->client
413
+            ->method('request')
414
+            ->willThrowException($reportException);
415
+
416
+        $this->service->syncRemoteAddressBook(
417
+            '',
418
+            'system',
419
+            'system',
420
+            '1234567890',
421
+            null,
422
+            '1',
423
+            'principals/system/system',
424
+            []
425
+        );
426
+    }
427
+
428
+    #[\PHPUnit\Framework\Attributes\DataProvider('providerUseAbsoluteUriReport')]
429
+    public function testUseAbsoluteUriReport(string $host, string $expected): void {
430
+        $body = '<?xml version="1.0"?>
431 431
 <d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:oc="http://owncloud.org/ns">
432 432
     <d:sync-token>http://sabre.io/ns/sync/1</d:sync-token>
433 433
 </d:multistatus>';
434 434
 
435
-		$requestResponse = new Response(new PsrResponse(
436
-			207,
437
-			['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
438
-			$body
439
-		));
440
-
441
-		$this->client
442
-			->method('request')
443
-			->with(
444
-				'REPORT',
445
-				$this->callback(function ($uri) use ($expected) {
446
-					$this->assertEquals($expected, $uri);
447
-					return true;
448
-				}),
449
-				$this->callback(function ($options) {
450
-					$this->assertIsArray($options);
451
-					return true;
452
-				}),
453
-			)
454
-			->willReturn($requestResponse);
455
-
456
-		$this->service->syncRemoteAddressBook(
457
-			$host,
458
-			'system',
459
-			'remote.php/dav/addressbooks/system/system/system',
460
-			'1234567890',
461
-			null,
462
-			'1',
463
-			'principals/system/system',
464
-			[]
465
-		);
466
-	}
467
-
468
-	public static function providerUseAbsoluteUriReport(): array {
469
-		return [
470
-			['https://server.internal', 'https://server.internal/remote.php/dav/addressbooks/system/system/system'],
471
-			['https://server.internal/', 'https://server.internal/remote.php/dav/addressbooks/system/system/system'],
472
-			['https://server.internal/nextcloud', 'https://server.internal/nextcloud/remote.php/dav/addressbooks/system/system/system'],
473
-			['https://server.internal/nextcloud/', 'https://server.internal/nextcloud/remote.php/dav/addressbooks/system/system/system'],
474
-			['https://server.internal:8080', 'https://server.internal:8080/remote.php/dav/addressbooks/system/system/system'],
475
-			['https://server.internal:8080/', 'https://server.internal:8080/remote.php/dav/addressbooks/system/system/system'],
476
-			['https://server.internal:8080/nextcloud', 'https://server.internal:8080/nextcloud/remote.php/dav/addressbooks/system/system/system'],
477
-			['https://server.internal:8080/nextcloud/', 'https://server.internal:8080/nextcloud/remote.php/dav/addressbooks/system/system/system'],
478
-		];
479
-	}
435
+        $requestResponse = new Response(new PsrResponse(
436
+            207,
437
+            ['Content-Type' => 'application/xml; charset=utf-8', 'Content-Length' => strlen($body)],
438
+            $body
439
+        ));
440
+
441
+        $this->client
442
+            ->method('request')
443
+            ->with(
444
+                'REPORT',
445
+                $this->callback(function ($uri) use ($expected) {
446
+                    $this->assertEquals($expected, $uri);
447
+                    return true;
448
+                }),
449
+                $this->callback(function ($options) {
450
+                    $this->assertIsArray($options);
451
+                    return true;
452
+                }),
453
+            )
454
+            ->willReturn($requestResponse);
455
+
456
+        $this->service->syncRemoteAddressBook(
457
+            $host,
458
+            'system',
459
+            'remote.php/dav/addressbooks/system/system/system',
460
+            '1234567890',
461
+            null,
462
+            '1',
463
+            'principals/system/system',
464
+            []
465
+        );
466
+    }
467
+
468
+    public static function providerUseAbsoluteUriReport(): array {
469
+        return [
470
+            ['https://server.internal', 'https://server.internal/remote.php/dav/addressbooks/system/system/system'],
471
+            ['https://server.internal/', 'https://server.internal/remote.php/dav/addressbooks/system/system/system'],
472
+            ['https://server.internal/nextcloud', 'https://server.internal/nextcloud/remote.php/dav/addressbooks/system/system/system'],
473
+            ['https://server.internal/nextcloud/', 'https://server.internal/nextcloud/remote.php/dav/addressbooks/system/system/system'],
474
+            ['https://server.internal:8080', 'https://server.internal:8080/remote.php/dav/addressbooks/system/system/system'],
475
+            ['https://server.internal:8080/', 'https://server.internal:8080/remote.php/dav/addressbooks/system/system/system'],
476
+            ['https://server.internal:8080/nextcloud', 'https://server.internal:8080/nextcloud/remote.php/dav/addressbooks/system/system/system'],
477
+            ['https://server.internal:8080/nextcloud/', 'https://server.internal:8080/nextcloud/remote.php/dav/addressbooks/system/system/system'],
478
+        ];
479
+    }
480 480
 }
Please login to merge, or discard this patch.
apps/dav/tests/unit/CardDAV/CardDavBackendTest.php 1 patch
Indentation   +875 added lines, -875 removed lines patch added patch discarded remove patch
@@ -48,879 +48,879 @@
 block discarded – undo
48 48
  * @package OCA\DAV\Tests\unit\CardDAV
49 49
  */
50 50
 class CardDavBackendTest extends TestCase {
51
-	private Principal&MockObject $principal;
52
-	private IUserManager&MockObject $userManager;
53
-	private IGroupManager&MockObject $groupManager;
54
-	private IEventDispatcher&MockObject $dispatcher;
55
-	private IConfig&MockObject $config;
56
-	private RemoteUserPrincipalBackend&MockObject $remoteUserPrincipalBackend;
57
-	private FederationSharingService&MockObject $federationSharingService;
58
-	private Backend $sharingBackend;
59
-	private IDBConnection $db;
60
-	private CardDavBackend $backend;
61
-	private string $dbCardsTable = 'cards';
62
-	private string $dbCardsPropertiesTable = 'cards_properties';
63
-
64
-	public const UNIT_TEST_USER = 'principals/users/carddav-unit-test';
65
-	public const UNIT_TEST_USER1 = 'principals/users/carddav-unit-test1';
66
-	public const UNIT_TEST_GROUP = 'principals/groups/carddav-unit-test-group';
67
-
68
-	private $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL
69
-		. 'VERSION:3.0' . PHP_EOL
70
-		. 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
71
-		. 'UID:Test' . PHP_EOL
72
-		. 'FN:Test' . PHP_EOL
73
-		. 'N:Test;;;;' . PHP_EOL
74
-		. 'END:VCARD';
75
-
76
-	private $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL
77
-		. 'VERSION:3.0' . PHP_EOL
78
-		. 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
79
-		. 'UID:Test2' . PHP_EOL
80
-		. 'FN:Test2' . PHP_EOL
81
-		. 'N:Test2;;;;' . PHP_EOL
82
-		. 'END:VCARD';
83
-
84
-	private $vcardTest2 = 'BEGIN:VCARD' . PHP_EOL
85
-		. 'VERSION:3.0' . PHP_EOL
86
-		. 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
87
-		. 'UID:Test3' . PHP_EOL
88
-		. 'FN:Test3' . PHP_EOL
89
-		. 'N:Test3;;;;' . PHP_EOL
90
-		. 'END:VCARD';
91
-
92
-	private $vcardTestNoUID = 'BEGIN:VCARD' . PHP_EOL
93
-		. 'VERSION:3.0' . PHP_EOL
94
-		. 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
95
-		. 'FN:TestNoUID' . PHP_EOL
96
-		. 'N:TestNoUID;;;;' . PHP_EOL
97
-		. 'END:VCARD';
98
-
99
-	protected function setUp(): void {
100
-		parent::setUp();
101
-
102
-		$this->userManager = $this->createMock(IUserManager::class);
103
-		$this->groupManager = $this->createMock(IGroupManager::class);
104
-		$this->config = $this->createMock(IConfig::class);
105
-		$this->principal = $this->getMockBuilder(Principal::class)
106
-			->setConstructorArgs([
107
-				$this->userManager,
108
-				$this->groupManager,
109
-				$this->createMock(IAccountManager::class),
110
-				$this->createMock(ShareManager::class),
111
-				$this->createMock(IUserSession::class),
112
-				$this->createMock(IAppManager::class),
113
-				$this->createMock(ProxyMapper::class),
114
-				$this->createMock(KnownUserService::class),
115
-				$this->config,
116
-				$this->createMock(IFactory::class)
117
-			])
118
-			->onlyMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
119
-			->getMock();
120
-		$this->principal->method('getPrincipalByPath')
121
-			->willReturn([
122
-				'uri' => 'principals/best-friend',
123
-				'{DAV:}displayname' => 'User\'s displayname',
124
-			]);
125
-		$this->principal->method('getGroupMembership')
126
-			->withAnyParameters()
127
-			->willReturn([self::UNIT_TEST_GROUP]);
128
-		$this->dispatcher = $this->createMock(IEventDispatcher::class);
129
-		$this->remoteUserPrincipalBackend = $this->createMock(RemoteUserPrincipalBackend::class);
130
-		$this->federationSharingService = $this->createMock(FederationSharingService::class);
131
-
132
-		$this->db = Server::get(IDBConnection::class);
133
-		$this->sharingBackend = new Backend($this->userManager,
134
-			$this->groupManager,
135
-			$this->principal,
136
-			$this->remoteUserPrincipalBackend,
137
-			$this->createMock(ICacheFactory::class),
138
-			new Service(new SharingMapper($this->db)),
139
-			$this->federationSharingService,
140
-			$this->createMock(LoggerInterface::class)
141
-		);
142
-
143
-		$this->backend = new CardDavBackend($this->db,
144
-			$this->principal,
145
-			$this->userManager,
146
-			$this->dispatcher,
147
-			$this->sharingBackend,
148
-			$this->config,
149
-		);
150
-		// start every test with a empty cards_properties and cards table
151
-		$query = $this->db->getQueryBuilder();
152
-		$query->delete('cards_properties')->executeStatement();
153
-		$query = $this->db->getQueryBuilder();
154
-		$query->delete('cards')->executeStatement();
155
-
156
-		$this->principal->method('getGroupMembership')
157
-			->withAnyParameters()
158
-			->willReturn([self::UNIT_TEST_GROUP]);
159
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
160
-		foreach ($books as $book) {
161
-			$this->backend->deleteAddressBook($book['id']);
162
-		}
163
-	}
164
-
165
-	protected function tearDown(): void {
166
-		if (is_null($this->backend)) {
167
-			return;
168
-		}
169
-
170
-		$this->principal->method('getGroupMembership')
171
-			->withAnyParameters()
172
-			->willReturn([self::UNIT_TEST_GROUP]);
173
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
174
-		foreach ($books as $book) {
175
-			$this->backend->deleteAddressBook($book['id']);
176
-		}
177
-
178
-		parent::tearDown();
179
-	}
180
-
181
-	public function testAddressBookOperations(): void {
182
-		// create a new address book
183
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
184
-
185
-		$this->assertEquals(1, $this->backend->getAddressBooksForUserCount(self::UNIT_TEST_USER));
186
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
187
-		$this->assertEquals(1, count($books));
188
-		$this->assertEquals('Example', $books[0]['{DAV:}displayname']);
189
-		$this->assertEquals('User\'s displayname', $books[0]['{http://nextcloud.com/ns}owner-displayname']);
190
-
191
-		// update its display name
192
-		$patch = new PropPatch([
193
-			'{DAV:}displayname' => 'Unit test',
194
-			'{urn:ietf:params:xml:ns:carddav}addressbook-description' => 'Addressbook used for unit testing'
195
-		]);
196
-		$this->backend->updateAddressBook($books[0]['id'], $patch);
197
-		$patch->commit();
198
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
199
-		$this->assertEquals(1, count($books));
200
-		$this->assertEquals('Unit test', $books[0]['{DAV:}displayname']);
201
-		$this->assertEquals('Addressbook used for unit testing', $books[0]['{urn:ietf:params:xml:ns:carddav}addressbook-description']);
202
-
203
-		// delete the address book
204
-		$this->backend->deleteAddressBook($books[0]['id']);
205
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
206
-		$this->assertEquals(0, count($books));
207
-	}
208
-
209
-	public function testAddressBookSharing(): void {
210
-		$this->userManager->expects($this->any())
211
-			->method('userExists')
212
-			->willReturn(true);
213
-		$this->groupManager->expects($this->any())
214
-			->method('groupExists')
215
-			->willReturn(true);
216
-		$this->principal->expects(self::atLeastOnce())
217
-			->method('findByUri')
218
-			->willReturnOnConsecutiveCalls(self::UNIT_TEST_USER1, self::UNIT_TEST_GROUP);
219
-
220
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
221
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
222
-		$this->assertEquals(1, count($books));
223
-		$l = $this->createMock(IL10N::class);
224
-		$addressBook = new AddressBook($this->backend, $books[0], $l);
225
-		$this->backend->updateShares($addressBook, [
226
-			[
227
-				'href' => 'principal:' . self::UNIT_TEST_USER1,
228
-			],
229
-			[
230
-				'href' => 'principal:' . self::UNIT_TEST_GROUP,
231
-			]
232
-		], []);
233
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1);
234
-		$this->assertEquals(1, count($books));
235
-
236
-		// delete the address book
237
-		$this->backend->deleteAddressBook($books[0]['id']);
238
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
239
-		$this->assertEquals(0, count($books));
240
-	}
241
-
242
-	public function testCardOperations(): void {
243
-		/** @var CardDavBackend&MockObject $backend */
244
-		$backend = $this->getMockBuilder(CardDavBackend::class)
245
-			->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
246
-			->onlyMethods(['updateProperties', 'purgeProperties'])
247
-			->getMock();
248
-
249
-		// create a new address book
250
-		$backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
251
-		$books = $backend->getAddressBooksForUser(self::UNIT_TEST_USER);
252
-		$this->assertEquals(1, count($books));
253
-		$bookId = $books[0]['id'];
254
-
255
-		$uri = $this->getUniqueID('card');
256
-		// updateProperties is expected twice, once for createCard and once for updateCard
257
-		$calls = [
258
-			[$bookId, $uri, $this->vcardTest0],
259
-			[$bookId, $uri, $this->vcardTest1],
260
-		];
261
-		$backend->expects($this->exactly(count($calls)))
262
-			->method('updateProperties')
263
-			->willReturnCallback(function () use (&$calls): void {
264
-				$expected = array_shift($calls);
265
-				$this->assertEquals($expected, func_get_args());
266
-			});
267
-
268
-		// Expect event
269
-		$this->dispatcher
270
-			->expects($this->exactly(3))
271
-			->method('dispatchTyped');
272
-
273
-		// create a card
274
-		$backend->createCard($bookId, $uri, $this->vcardTest0);
275
-
276
-		// get all the cards
277
-		$cards = $backend->getCards($bookId);
278
-		$this->assertEquals(1, count($cards));
279
-		$this->assertEquals($this->vcardTest0, $cards[0]['carddata']);
280
-
281
-		// get the cards
282
-		$card = $backend->getCard($bookId, $uri);
283
-		$this->assertNotNull($card);
284
-		$this->assertArrayHasKey('id', $card);
285
-		$this->assertArrayHasKey('uri', $card);
286
-		$this->assertArrayHasKey('lastmodified', $card);
287
-		$this->assertArrayHasKey('etag', $card);
288
-		$this->assertArrayHasKey('size', $card);
289
-		$this->assertEquals($this->vcardTest0, $card['carddata']);
290
-
291
-		// update the card
292
-		$backend->updateCard($bookId, $uri, $this->vcardTest1);
293
-		$card = $backend->getCard($bookId, $uri);
294
-		$this->assertEquals($this->vcardTest1, $card['carddata']);
295
-
296
-		// delete the card
297
-		$backend->expects($this->once())->method('purgeProperties')->with($bookId, $card['id']);
298
-		$backend->deleteCard($bookId, $uri);
299
-		$cards = $backend->getCards($bookId);
300
-		$this->assertEquals(0, count($cards));
301
-	}
302
-
303
-	public function testMultiCard(): void {
304
-		$this->backend = $this->getMockBuilder(CardDavBackend::class)
305
-			->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
306
-			->onlyMethods(['updateProperties'])
307
-			->getMock();
308
-
309
-		// create a new address book
310
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
311
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
312
-		$this->assertEquals(1, count($books));
313
-		$bookId = $books[0]['id'];
314
-
315
-		// create a card
316
-		$uri0 = self::getUniqueID('card');
317
-		$this->backend->createCard($bookId, $uri0, $this->vcardTest0);
318
-		$uri1 = self::getUniqueID('card');
319
-		$this->backend->createCard($bookId, $uri1, $this->vcardTest1);
320
-		$uri2 = self::getUniqueID('card');
321
-		$this->backend->createCard($bookId, $uri2, $this->vcardTest2);
322
-
323
-		// get all the cards
324
-		$cards = $this->backend->getCards($bookId);
325
-		$this->assertEquals(3, count($cards));
326
-		usort($cards, function ($a, $b) {
327
-			return $a['id'] < $b['id'] ? -1 : 1;
328
-		});
329
-
330
-		$this->assertEquals($this->vcardTest0, $cards[0]['carddata']);
331
-		$this->assertEquals($this->vcardTest1, $cards[1]['carddata']);
332
-		$this->assertEquals($this->vcardTest2, $cards[2]['carddata']);
333
-
334
-		// get the cards 1 & 2 (not 0)
335
-		$cards = $this->backend->getMultipleCards($bookId, [$uri1, $uri2]);
336
-		$this->assertEquals(2, count($cards));
337
-		usort($cards, function ($a, $b) {
338
-			return $a['id'] < $b['id'] ? -1 : 1;
339
-		});
340
-		foreach ($cards as $index => $card) {
341
-			$this->assertArrayHasKey('id', $card);
342
-			$this->assertArrayHasKey('uri', $card);
343
-			$this->assertArrayHasKey('lastmodified', $card);
344
-			$this->assertArrayHasKey('etag', $card);
345
-			$this->assertArrayHasKey('size', $card);
346
-			$this->assertEquals($this->{ 'vcardTest' . ($index + 1) }, $card['carddata']);
347
-		}
348
-
349
-		// delete the card
350
-		$this->backend->deleteCard($bookId, $uri0);
351
-		$this->backend->deleteCard($bookId, $uri1);
352
-		$this->backend->deleteCard($bookId, $uri2);
353
-		$cards = $this->backend->getCards($bookId);
354
-		$this->assertEquals(0, count($cards));
355
-	}
356
-
357
-	public function testMultipleUIDOnDifferentAddressbooks(): void {
358
-		$this->backend = $this->getMockBuilder(CardDavBackend::class)
359
-			->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
360
-			->onlyMethods(['updateProperties'])
361
-			->getMock();
362
-
363
-		// create 2 new address books
364
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
365
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example2', []);
366
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
367
-		$this->assertEquals(2, count($books));
368
-		$bookId0 = $books[0]['id'];
369
-		$bookId1 = $books[1]['id'];
370
-
371
-		// create a card
372
-		$uri0 = $this->getUniqueID('card');
373
-		$this->backend->createCard($bookId0, $uri0, $this->vcardTest0);
374
-
375
-		// create another card with same uid but in second address book
376
-		$uri1 = $this->getUniqueID('card');
377
-		$this->backend->createCard($bookId1, $uri1, $this->vcardTest0);
378
-	}
379
-
380
-	public function testMultipleUIDDenied(): void {
381
-		$this->backend = $this->getMockBuilder(CardDavBackend::class)
382
-			->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
383
-			->onlyMethods(['updateProperties'])
384
-			->getMock();
385
-
386
-		// create a new address book
387
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
388
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
389
-		$this->assertEquals(1, count($books));
390
-		$bookId = $books[0]['id'];
391
-
392
-		// create a card
393
-		$uri0 = $this->getUniqueID('card');
394
-		$this->backend->createCard($bookId, $uri0, $this->vcardTest0);
395
-
396
-		// create another card with same uid
397
-		$uri1 = $this->getUniqueID('card');
398
-		$this->expectException(BadRequest::class);
399
-		$test = $this->backend->createCard($bookId, $uri1, $this->vcardTest0);
400
-	}
401
-
402
-	public function testNoValidUID(): void {
403
-		$this->backend = $this->getMockBuilder(CardDavBackend::class)
404
-			->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
405
-			->onlyMethods(['updateProperties'])
406
-			->getMock();
407
-
408
-		// create a new address book
409
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
410
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
411
-		$this->assertEquals(1, count($books));
412
-		$bookId = $books[0]['id'];
413
-
414
-		// create a card without uid
415
-		$uri1 = $this->getUniqueID('card');
416
-		$this->expectException(BadRequest::class);
417
-		$test = $this->backend->createCard($bookId, $uri1, $this->vcardTestNoUID);
418
-	}
419
-
420
-	public function testDeleteWithoutCard(): void {
421
-		$this->backend = $this->getMockBuilder(CardDavBackend::class)
422
-			->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
423
-			->onlyMethods([
424
-				'getCardId',
425
-				'addChange',
426
-				'purgeProperties',
427
-				'updateProperties',
428
-			])
429
-			->getMock();
430
-
431
-		// create a new address book
432
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
433
-		$books = $this->backend->getUsersOwnAddressBooks(self::UNIT_TEST_USER);
434
-		$this->assertEquals(1, count($books));
435
-
436
-		$bookId = $books[0]['id'];
437
-		$uri = $this->getUniqueID('card');
438
-
439
-		// create a new address book
440
-		$this->backend->expects($this->once())
441
-			->method('getCardId')
442
-			->with($bookId, $uri)
443
-			->willThrowException(new \InvalidArgumentException());
444
-
445
-		$calls = [
446
-			[$bookId, $uri, 1],
447
-			[$bookId, $uri, 3],
448
-		];
449
-		$this->backend->expects($this->exactly(count($calls)))
450
-			->method('addChange')
451
-			->willReturnCallback(function () use (&$calls): void {
452
-				$expected = array_shift($calls);
453
-				$this->assertEquals($expected, func_get_args());
454
-			});
455
-		$this->backend->expects($this->never())
456
-			->method('purgeProperties');
457
-
458
-		// create a card
459
-		$this->backend->createCard($bookId, $uri, $this->vcardTest0);
460
-
461
-		// delete the card
462
-		$this->assertTrue($this->backend->deleteCard($bookId, $uri));
463
-	}
464
-
465
-	public function testSyncSupport(): void {
466
-		$this->backend = $this->getMockBuilder(CardDavBackend::class)
467
-			->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
468
-			->onlyMethods(['updateProperties'])
469
-			->getMock();
470
-
471
-		// create a new address book
472
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
473
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
474
-		$this->assertEquals(1, count($books));
475
-		$bookId = $books[0]['id'];
476
-
477
-		// fist call without synctoken
478
-		$changes = $this->backend->getChangesForAddressBook($bookId, '', 1);
479
-		$syncToken = $changes['syncToken'];
480
-
481
-		// add a change
482
-		$uri0 = $this->getUniqueID('card');
483
-		$this->backend->createCard($bookId, $uri0, $this->vcardTest0);
484
-
485
-		// look for changes
486
-		$changes = $this->backend->getChangesForAddressBook($bookId, $syncToken, 1);
487
-		$this->assertEquals($uri0, $changes['added'][0]);
488
-	}
489
-
490
-	public function testSharing(): void {
491
-		$this->userManager->expects($this->any())
492
-			->method('userExists')
493
-			->willReturn(true);
494
-		$this->groupManager->expects($this->any())
495
-			->method('groupExists')
496
-			->willReturn(true);
497
-		$this->principal->expects(self::any())
498
-			->method('findByUri')
499
-			->willReturn(self::UNIT_TEST_USER1);
500
-
501
-		$this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
502
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
503
-		$this->assertEquals(1, count($books));
504
-
505
-		$l = $this->createMock(IL10N::class);
506
-		$exampleBook = new AddressBook($this->backend, $books[0], $l);
507
-		$this->backend->updateShares($exampleBook, [['href' => 'principal:' . self::UNIT_TEST_USER1]], []);
508
-
509
-		$shares = $this->backend->getShares($exampleBook->getResourceId());
510
-		$this->assertEquals(1, count($shares));
511
-
512
-		// adding the same sharee again has no effect
513
-		$this->backend->updateShares($exampleBook, [['href' => 'principal:' . self::UNIT_TEST_USER1]], []);
514
-
515
-		$shares = $this->backend->getShares($exampleBook->getResourceId());
516
-		$this->assertEquals(1, count($shares));
517
-
518
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1);
519
-		$this->assertEquals(1, count($books));
520
-
521
-		$this->backend->updateShares($exampleBook, [], ['principal:' . self::UNIT_TEST_USER1]);
522
-
523
-		$shares = $this->backend->getShares($exampleBook->getResourceId());
524
-		$this->assertEquals(0, count($shares));
525
-
526
-		$books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1);
527
-		$this->assertEquals(0, count($books));
528
-	}
529
-
530
-	public function testUpdateProperties(): void {
531
-		$bookId = 42;
532
-		$cardUri = 'card-uri';
533
-		$cardId = 2;
534
-
535
-		$backend = $this->getMockBuilder(CardDavBackend::class)
536
-			->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
537
-			->onlyMethods(['getCardId'])->getMock();
538
-
539
-		$backend->expects($this->any())->method('getCardId')->willReturn($cardId);
540
-
541
-		// add properties for new vCard
542
-		$vCard = new VCard();
543
-		$vCard->UID = $cardUri;
544
-		$vCard->FN = 'John Doe';
545
-		$this->invokePrivate($backend, 'updateProperties', [$bookId, $cardUri, $vCard->serialize()]);
546
-
547
-		$query = $this->db->getQueryBuilder();
548
-		$query->select('*')
549
-			->from('cards_properties')
550
-			->orderBy('name');
551
-
552
-		$qResult = $query->execute();
553
-		$result = $qResult->fetchAll();
554
-		$qResult->closeCursor();
555
-
556
-		$this->assertSame(2, count($result));
557
-
558
-		$this->assertSame('FN', $result[0]['name']);
559
-		$this->assertSame('John Doe', $result[0]['value']);
560
-		$this->assertSame($bookId, (int)$result[0]['addressbookid']);
561
-		$this->assertSame($cardId, (int)$result[0]['cardid']);
562
-
563
-		$this->assertSame('UID', $result[1]['name']);
564
-		$this->assertSame($cardUri, $result[1]['value']);
565
-		$this->assertSame($bookId, (int)$result[1]['addressbookid']);
566
-		$this->assertSame($cardId, (int)$result[1]['cardid']);
567
-
568
-		// update properties for existing vCard
569
-		$vCard = new VCard();
570
-		$vCard->UID = $cardUri;
571
-		$this->invokePrivate($backend, 'updateProperties', [$bookId, $cardUri, $vCard->serialize()]);
572
-
573
-		$query = $this->db->getQueryBuilder();
574
-		$query->select('*')
575
-			->from('cards_properties');
576
-
577
-		$qResult = $query->execute();
578
-		$result = $qResult->fetchAll();
579
-		$qResult->closeCursor();
580
-
581
-		$this->assertSame(1, count($result));
582
-
583
-		$this->assertSame('UID', $result[0]['name']);
584
-		$this->assertSame($cardUri, $result[0]['value']);
585
-		$this->assertSame($bookId, (int)$result[0]['addressbookid']);
586
-		$this->assertSame($cardId, (int)$result[0]['cardid']);
587
-	}
588
-
589
-	public function testPurgeProperties(): void {
590
-		$query = $this->db->getQueryBuilder();
591
-		$query->insert('cards_properties')
592
-			->values(
593
-				[
594
-					'addressbookid' => $query->createNamedParameter(1),
595
-					'cardid' => $query->createNamedParameter(1),
596
-					'name' => $query->createNamedParameter('name1'),
597
-					'value' => $query->createNamedParameter('value1'),
598
-					'preferred' => $query->createNamedParameter(0)
599
-				]
600
-			);
601
-		$query->execute();
602
-
603
-		$query = $this->db->getQueryBuilder();
604
-		$query->insert('cards_properties')
605
-			->values(
606
-				[
607
-					'addressbookid' => $query->createNamedParameter(1),
608
-					'cardid' => $query->createNamedParameter(2),
609
-					'name' => $query->createNamedParameter('name2'),
610
-					'value' => $query->createNamedParameter('value2'),
611
-					'preferred' => $query->createNamedParameter(0)
612
-				]
613
-			);
614
-		$query->execute();
615
-
616
-		$this->invokePrivate($this->backend, 'purgeProperties', [1, 1]);
617
-
618
-		$query = $this->db->getQueryBuilder();
619
-		$query->select('*')
620
-			->from('cards_properties');
621
-
622
-		$qResult = $query->execute();
623
-		$result = $qResult->fetchAll();
624
-		$qResult->closeCursor();
625
-
626
-		$this->assertSame(1, count($result));
627
-		$this->assertSame(1, (int)$result[0]['addressbookid']);
628
-		$this->assertSame(2, (int)$result[0]['cardid']);
629
-	}
630
-
631
-	public function testGetCardId(): void {
632
-		$query = $this->db->getQueryBuilder();
633
-
634
-		$query->insert('cards')
635
-			->values(
636
-				[
637
-					'addressbookid' => $query->createNamedParameter(1),
638
-					'carddata' => $query->createNamedParameter(''),
639
-					'uri' => $query->createNamedParameter('uri'),
640
-					'lastmodified' => $query->createNamedParameter(4738743),
641
-					'etag' => $query->createNamedParameter('etag'),
642
-					'size' => $query->createNamedParameter(120)
643
-				]
644
-			);
645
-		$query->execute();
646
-		$id = $query->getLastInsertId();
647
-
648
-		$this->assertSame($id,
649
-			$this->invokePrivate($this->backend, 'getCardId', [1, 'uri']));
650
-	}
651
-
652
-
653
-	public function testGetCardIdFailed(): void {
654
-		$this->expectException(\InvalidArgumentException::class);
655
-
656
-		$this->invokePrivate($this->backend, 'getCardId', [1, 'uri']);
657
-	}
658
-
659
-	#[\PHPUnit\Framework\Attributes\DataProvider('dataTestSearch')]
660
-	public function testSearch(string $pattern, array $properties, array $options, array $expected): void {
661
-		/** @var VCard $vCards */
662
-		$vCards = [];
663
-		$vCards[0] = new VCard();
664
-		$vCards[0]->add(new Text($vCards[0], 'UID', 'uid'));
665
-		$vCards[0]->add(new Text($vCards[0], 'FN', 'John Doe'));
666
-		$vCards[0]->add(new Text($vCards[0], 'CLOUD', '[email protected]'));
667
-		$vCards[1] = new VCard();
668
-		$vCards[1]->add(new Text($vCards[1], 'UID', 'uid'));
669
-		$vCards[1]->add(new Text($vCards[1], 'FN', 'John M. Doe'));
670
-		$vCards[2] = new VCard();
671
-		$vCards[2]->add(new Text($vCards[2], 'UID', 'uid'));
672
-		$vCards[2]->add(new Text($vCards[2], 'FN', 'find without options'));
673
-		$vCards[2]->add(new Text($vCards[2], 'CLOUD', '[email protected]'));
674
-
675
-		$vCardIds = [];
676
-		$query = $this->db->getQueryBuilder();
677
-		for ($i = 0; $i < 3; $i++) {
678
-			$query->insert($this->dbCardsTable)
679
-				->values(
680
-					[
681
-						'addressbookid' => $query->createNamedParameter(0),
682
-						'carddata' => $query->createNamedParameter($vCards[$i]->serialize(), IQueryBuilder::PARAM_LOB),
683
-						'uri' => $query->createNamedParameter('uri' . $i),
684
-						'lastmodified' => $query->createNamedParameter(time()),
685
-						'etag' => $query->createNamedParameter('etag' . $i),
686
-						'size' => $query->createNamedParameter(120),
687
-					]
688
-				);
689
-			$query->execute();
690
-			$vCardIds[] = $query->getLastInsertId();
691
-		}
692
-
693
-		$query = $this->db->getQueryBuilder();
694
-		$query->insert($this->dbCardsPropertiesTable)
695
-			->values(
696
-				[
697
-					'addressbookid' => $query->createNamedParameter(0),
698
-					'cardid' => $query->createNamedParameter($vCardIds[0]),
699
-					'name' => $query->createNamedParameter('FN'),
700
-					'value' => $query->createNamedParameter('John Doe'),
701
-					'preferred' => $query->createNamedParameter(0)
702
-				]
703
-			);
704
-		$query->execute();
705
-		$query = $this->db->getQueryBuilder();
706
-		$query->insert($this->dbCardsPropertiesTable)
707
-			->values(
708
-				[
709
-					'addressbookid' => $query->createNamedParameter(0),
710
-					'cardid' => $query->createNamedParameter($vCardIds[0]),
711
-					'name' => $query->createNamedParameter('CLOUD'),
712
-					'value' => $query->createNamedParameter('[email protected]'),
713
-					'preferred' => $query->createNamedParameter(0)
714
-				]
715
-			);
716
-		$query->execute();
717
-		$query = $this->db->getQueryBuilder();
718
-		$query->insert($this->dbCardsPropertiesTable)
719
-			->values(
720
-				[
721
-					'addressbookid' => $query->createNamedParameter(0),
722
-					'cardid' => $query->createNamedParameter($vCardIds[1]),
723
-					'name' => $query->createNamedParameter('FN'),
724
-					'value' => $query->createNamedParameter('John M. Doe'),
725
-					'preferred' => $query->createNamedParameter(0)
726
-				]
727
-			);
728
-		$query->execute();
729
-		$query = $this->db->getQueryBuilder();
730
-		$query->insert($this->dbCardsPropertiesTable)
731
-			->values(
732
-				[
733
-					'addressbookid' => $query->createNamedParameter(0),
734
-					'cardid' => $query->createNamedParameter($vCardIds[2]),
735
-					'name' => $query->createNamedParameter('FN'),
736
-					'value' => $query->createNamedParameter('find without options'),
737
-					'preferred' => $query->createNamedParameter(0)
738
-				]
739
-			);
740
-		$query->execute();
741
-		$query = $this->db->getQueryBuilder();
742
-		$query->insert($this->dbCardsPropertiesTable)
743
-			->values(
744
-				[
745
-					'addressbookid' => $query->createNamedParameter(0),
746
-					'cardid' => $query->createNamedParameter($vCardIds[2]),
747
-					'name' => $query->createNamedParameter('CLOUD'),
748
-					'value' => $query->createNamedParameter('[email protected]'),
749
-					'preferred' => $query->createNamedParameter(0)
750
-				]
751
-			);
752
-		$query->execute();
753
-
754
-		$result = $this->backend->search(0, $pattern, $properties, $options);
755
-
756
-		// check result
757
-		$this->assertSame(count($expected), count($result));
758
-		$found = [];
759
-		foreach ($result as $r) {
760
-			foreach ($expected as $exp) {
761
-				if ($r['uri'] === $exp[0] && strpos($r['carddata'], $exp[1]) > 0) {
762
-					$found[$exp[1]] = true;
763
-					break;
764
-				}
765
-			}
766
-		}
767
-
768
-		$this->assertSame(count($expected), count($found));
769
-	}
770
-
771
-	public static function dataTestSearch(): array {
772
-		return [
773
-			['John', ['FN'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
774
-			['M. Doe', ['FN'], [], [['uri1', 'John M. Doe']]],
775
-			['Do', ['FN'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
776
-			'check if duplicates are handled correctly' => ['John', ['FN', 'CLOUD'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
777
-			'case insensitive' => ['john', ['FN'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
778
-			'limit' => ['john', ['FN'], ['limit' => 1], [['uri0', 'John Doe']]],
779
-			'limit and offset' => ['john', ['FN'], ['limit' => 1, 'offset' => 1], [['uri1', 'John M. Doe']]],
780
-			'find "_" escaped' => ['_', ['CLOUD'], [], [['uri2', 'find without options']]],
781
-			'find not empty CLOUD' => ['%_%', ['CLOUD'], ['escape_like_param' => false], [['uri0', 'John Doe'], ['uri2', 'find without options']]],
782
-		];
783
-	}
784
-
785
-	public function testGetCardUri(): void {
786
-		$query = $this->db->getQueryBuilder();
787
-		$query->insert($this->dbCardsTable)
788
-			->values(
789
-				[
790
-					'addressbookid' => $query->createNamedParameter(1),
791
-					'carddata' => $query->createNamedParameter('carddata', IQueryBuilder::PARAM_LOB),
792
-					'uri' => $query->createNamedParameter('uri'),
793
-					'lastmodified' => $query->createNamedParameter(5489543),
794
-					'etag' => $query->createNamedParameter('etag'),
795
-					'size' => $query->createNamedParameter(120),
796
-				]
797
-			);
798
-		$query->execute();
799
-
800
-		$id = $query->getLastInsertId();
801
-
802
-		$this->assertSame('uri', $this->backend->getCardUri($id));
803
-	}
804
-
805
-
806
-	public function testGetCardUriFailed(): void {
807
-		$this->expectException(\InvalidArgumentException::class);
808
-
809
-		$this->backend->getCardUri(1);
810
-	}
811
-
812
-	public function testGetContact(): void {
813
-		$query = $this->db->getQueryBuilder();
814
-		for ($i = 0; $i < 2; $i++) {
815
-			$query->insert($this->dbCardsTable)
816
-				->values(
817
-					[
818
-						'addressbookid' => $query->createNamedParameter($i),
819
-						'carddata' => $query->createNamedParameter('carddata' . $i, IQueryBuilder::PARAM_LOB),
820
-						'uri' => $query->createNamedParameter('uri' . $i),
821
-						'lastmodified' => $query->createNamedParameter(5489543),
822
-						'etag' => $query->createNamedParameter('etag' . $i),
823
-						'size' => $query->createNamedParameter(120),
824
-					]
825
-				);
826
-			$query->execute();
827
-		}
828
-
829
-		$result = $this->backend->getContact(0, 'uri0');
830
-		$this->assertSame(8, count($result));
831
-		$this->assertSame(0, (int)$result['addressbookid']);
832
-		$this->assertSame('uri0', $result['uri']);
833
-		$this->assertSame(5489543, (int)$result['lastmodified']);
834
-		$this->assertSame('"etag0"', $result['etag']);
835
-		$this->assertSame(120, (int)$result['size']);
836
-
837
-		// this shouldn't return any result because 'uri1' is in address book 1
838
-		// see https://github.com/nextcloud/server/issues/229
839
-		$result = $this->backend->getContact(0, 'uri1');
840
-		$this->assertEmpty($result);
841
-	}
842
-
843
-	public function testGetContactFail(): void {
844
-		$this->assertEmpty($this->backend->getContact(0, 'uri'));
845
-	}
846
-
847
-	public function testCollectCardProperties(): void {
848
-		$query = $this->db->getQueryBuilder();
849
-		$query->insert($this->dbCardsPropertiesTable)
850
-			->values(
851
-				[
852
-					'addressbookid' => $query->createNamedParameter(666),
853
-					'cardid' => $query->createNamedParameter(777),
854
-					'name' => $query->createNamedParameter('FN'),
855
-					'value' => $query->createNamedParameter('John Doe'),
856
-					'preferred' => $query->createNamedParameter(0)
857
-				]
858
-			)
859
-			->execute();
860
-
861
-		$result = $this->backend->collectCardProperties(666, 'FN');
862
-		$this->assertEquals(['John Doe'], $result);
863
-	}
864
-
865
-	/**
866
-	 * @throws \OCP\DB\Exception
867
-	 * @throws \Sabre\DAV\Exception\BadRequest
868
-	 */
869
-	public function testPruneOutdatedSyncTokens(): void {
870
-		$addressBookId = $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
871
-		$changes = $this->backend->getChangesForAddressBook($addressBookId, '', 1);
872
-		$syncToken = $changes['syncToken'];
873
-
874
-		$uri = $this->getUniqueID('card');
875
-		$this->backend->createCard($addressBookId, $uri, $this->vcardTest0);
876
-		$this->backend->updateCard($addressBookId, $uri, $this->vcardTest1);
877
-
878
-		// Do not delete anything if week data as old as ts=0
879
-		$deleted = $this->backend->pruneOutdatedSyncTokens(0, 0);
880
-		self::assertSame(0, $deleted);
881
-
882
-		$deleted = $this->backend->pruneOutdatedSyncTokens(0, time());
883
-		// At least one from the object creation and one from the object update
884
-		$this->assertGreaterThanOrEqual(2, $deleted);
885
-		$changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 1);
886
-		$this->assertEmpty($changes['added']);
887
-		$this->assertEmpty($changes['modified']);
888
-		$this->assertEmpty($changes['deleted']);
889
-
890
-		// Test that objects remain
891
-
892
-		// Currently changes are empty
893
-		$changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 100);
894
-		$this->assertEquals(0, count($changes['added'] + $changes['modified'] + $changes['deleted']));
895
-
896
-		// Create card
897
-		$uri = $this->getUniqueID('card');
898
-		$this->backend->createCard($addressBookId, $uri, $this->vcardTest0);
899
-		// We now have one add
900
-		$changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 100);
901
-		$this->assertEquals(1, count($changes['added']));
902
-		$this->assertEmpty($changes['modified']);
903
-		$this->assertEmpty($changes['deleted']);
904
-
905
-		// Update card
906
-		$this->backend->updateCard($addressBookId, $uri, $this->vcardTest1);
907
-		// One add, one modify, but shortened to modify
908
-		$changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 100);
909
-		$this->assertEmpty($changes['added']);
910
-		$this->assertEquals(1, count($changes['modified']));
911
-		$this->assertEmpty($changes['deleted']);
912
-
913
-		// Delete all but last change
914
-		$deleted = $this->backend->pruneOutdatedSyncTokens(1, time());
915
-		$this->assertEquals(1, $deleted); // We had two changes before, now one
916
-
917
-		// Only update should remain
918
-		$changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 100);
919
-		$this->assertEmpty($changes['added']);
920
-		$this->assertEquals(1, count($changes['modified']));
921
-		$this->assertEmpty($changes['deleted']);
922
-
923
-		// Check that no crash occurs when prune is called without current changes
924
-		$deleted = $this->backend->pruneOutdatedSyncTokens(1, time());
925
-	}
51
+    private Principal&MockObject $principal;
52
+    private IUserManager&MockObject $userManager;
53
+    private IGroupManager&MockObject $groupManager;
54
+    private IEventDispatcher&MockObject $dispatcher;
55
+    private IConfig&MockObject $config;
56
+    private RemoteUserPrincipalBackend&MockObject $remoteUserPrincipalBackend;
57
+    private FederationSharingService&MockObject $federationSharingService;
58
+    private Backend $sharingBackend;
59
+    private IDBConnection $db;
60
+    private CardDavBackend $backend;
61
+    private string $dbCardsTable = 'cards';
62
+    private string $dbCardsPropertiesTable = 'cards_properties';
63
+
64
+    public const UNIT_TEST_USER = 'principals/users/carddav-unit-test';
65
+    public const UNIT_TEST_USER1 = 'principals/users/carddav-unit-test1';
66
+    public const UNIT_TEST_GROUP = 'principals/groups/carddav-unit-test-group';
67
+
68
+    private $vcardTest0 = 'BEGIN:VCARD' . PHP_EOL
69
+        . 'VERSION:3.0' . PHP_EOL
70
+        . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
71
+        . 'UID:Test' . PHP_EOL
72
+        . 'FN:Test' . PHP_EOL
73
+        . 'N:Test;;;;' . PHP_EOL
74
+        . 'END:VCARD';
75
+
76
+    private $vcardTest1 = 'BEGIN:VCARD' . PHP_EOL
77
+        . 'VERSION:3.0' . PHP_EOL
78
+        . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
79
+        . 'UID:Test2' . PHP_EOL
80
+        . 'FN:Test2' . PHP_EOL
81
+        . 'N:Test2;;;;' . PHP_EOL
82
+        . 'END:VCARD';
83
+
84
+    private $vcardTest2 = 'BEGIN:VCARD' . PHP_EOL
85
+        . 'VERSION:3.0' . PHP_EOL
86
+        . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
87
+        . 'UID:Test3' . PHP_EOL
88
+        . 'FN:Test3' . PHP_EOL
89
+        . 'N:Test3;;;;' . PHP_EOL
90
+        . 'END:VCARD';
91
+
92
+    private $vcardTestNoUID = 'BEGIN:VCARD' . PHP_EOL
93
+        . 'VERSION:3.0' . PHP_EOL
94
+        . 'PRODID:-//Sabre//Sabre VObject 4.1.2//EN' . PHP_EOL
95
+        . 'FN:TestNoUID' . PHP_EOL
96
+        . 'N:TestNoUID;;;;' . PHP_EOL
97
+        . 'END:VCARD';
98
+
99
+    protected function setUp(): void {
100
+        parent::setUp();
101
+
102
+        $this->userManager = $this->createMock(IUserManager::class);
103
+        $this->groupManager = $this->createMock(IGroupManager::class);
104
+        $this->config = $this->createMock(IConfig::class);
105
+        $this->principal = $this->getMockBuilder(Principal::class)
106
+            ->setConstructorArgs([
107
+                $this->userManager,
108
+                $this->groupManager,
109
+                $this->createMock(IAccountManager::class),
110
+                $this->createMock(ShareManager::class),
111
+                $this->createMock(IUserSession::class),
112
+                $this->createMock(IAppManager::class),
113
+                $this->createMock(ProxyMapper::class),
114
+                $this->createMock(KnownUserService::class),
115
+                $this->config,
116
+                $this->createMock(IFactory::class)
117
+            ])
118
+            ->onlyMethods(['getPrincipalByPath', 'getGroupMembership', 'findByUri'])
119
+            ->getMock();
120
+        $this->principal->method('getPrincipalByPath')
121
+            ->willReturn([
122
+                'uri' => 'principals/best-friend',
123
+                '{DAV:}displayname' => 'User\'s displayname',
124
+            ]);
125
+        $this->principal->method('getGroupMembership')
126
+            ->withAnyParameters()
127
+            ->willReturn([self::UNIT_TEST_GROUP]);
128
+        $this->dispatcher = $this->createMock(IEventDispatcher::class);
129
+        $this->remoteUserPrincipalBackend = $this->createMock(RemoteUserPrincipalBackend::class);
130
+        $this->federationSharingService = $this->createMock(FederationSharingService::class);
131
+
132
+        $this->db = Server::get(IDBConnection::class);
133
+        $this->sharingBackend = new Backend($this->userManager,
134
+            $this->groupManager,
135
+            $this->principal,
136
+            $this->remoteUserPrincipalBackend,
137
+            $this->createMock(ICacheFactory::class),
138
+            new Service(new SharingMapper($this->db)),
139
+            $this->federationSharingService,
140
+            $this->createMock(LoggerInterface::class)
141
+        );
142
+
143
+        $this->backend = new CardDavBackend($this->db,
144
+            $this->principal,
145
+            $this->userManager,
146
+            $this->dispatcher,
147
+            $this->sharingBackend,
148
+            $this->config,
149
+        );
150
+        // start every test with a empty cards_properties and cards table
151
+        $query = $this->db->getQueryBuilder();
152
+        $query->delete('cards_properties')->executeStatement();
153
+        $query = $this->db->getQueryBuilder();
154
+        $query->delete('cards')->executeStatement();
155
+
156
+        $this->principal->method('getGroupMembership')
157
+            ->withAnyParameters()
158
+            ->willReturn([self::UNIT_TEST_GROUP]);
159
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
160
+        foreach ($books as $book) {
161
+            $this->backend->deleteAddressBook($book['id']);
162
+        }
163
+    }
164
+
165
+    protected function tearDown(): void {
166
+        if (is_null($this->backend)) {
167
+            return;
168
+        }
169
+
170
+        $this->principal->method('getGroupMembership')
171
+            ->withAnyParameters()
172
+            ->willReturn([self::UNIT_TEST_GROUP]);
173
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
174
+        foreach ($books as $book) {
175
+            $this->backend->deleteAddressBook($book['id']);
176
+        }
177
+
178
+        parent::tearDown();
179
+    }
180
+
181
+    public function testAddressBookOperations(): void {
182
+        // create a new address book
183
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
184
+
185
+        $this->assertEquals(1, $this->backend->getAddressBooksForUserCount(self::UNIT_TEST_USER));
186
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
187
+        $this->assertEquals(1, count($books));
188
+        $this->assertEquals('Example', $books[0]['{DAV:}displayname']);
189
+        $this->assertEquals('User\'s displayname', $books[0]['{http://nextcloud.com/ns}owner-displayname']);
190
+
191
+        // update its display name
192
+        $patch = new PropPatch([
193
+            '{DAV:}displayname' => 'Unit test',
194
+            '{urn:ietf:params:xml:ns:carddav}addressbook-description' => 'Addressbook used for unit testing'
195
+        ]);
196
+        $this->backend->updateAddressBook($books[0]['id'], $patch);
197
+        $patch->commit();
198
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
199
+        $this->assertEquals(1, count($books));
200
+        $this->assertEquals('Unit test', $books[0]['{DAV:}displayname']);
201
+        $this->assertEquals('Addressbook used for unit testing', $books[0]['{urn:ietf:params:xml:ns:carddav}addressbook-description']);
202
+
203
+        // delete the address book
204
+        $this->backend->deleteAddressBook($books[0]['id']);
205
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
206
+        $this->assertEquals(0, count($books));
207
+    }
208
+
209
+    public function testAddressBookSharing(): void {
210
+        $this->userManager->expects($this->any())
211
+            ->method('userExists')
212
+            ->willReturn(true);
213
+        $this->groupManager->expects($this->any())
214
+            ->method('groupExists')
215
+            ->willReturn(true);
216
+        $this->principal->expects(self::atLeastOnce())
217
+            ->method('findByUri')
218
+            ->willReturnOnConsecutiveCalls(self::UNIT_TEST_USER1, self::UNIT_TEST_GROUP);
219
+
220
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
221
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
222
+        $this->assertEquals(1, count($books));
223
+        $l = $this->createMock(IL10N::class);
224
+        $addressBook = new AddressBook($this->backend, $books[0], $l);
225
+        $this->backend->updateShares($addressBook, [
226
+            [
227
+                'href' => 'principal:' . self::UNIT_TEST_USER1,
228
+            ],
229
+            [
230
+                'href' => 'principal:' . self::UNIT_TEST_GROUP,
231
+            ]
232
+        ], []);
233
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1);
234
+        $this->assertEquals(1, count($books));
235
+
236
+        // delete the address book
237
+        $this->backend->deleteAddressBook($books[0]['id']);
238
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
239
+        $this->assertEquals(0, count($books));
240
+    }
241
+
242
+    public function testCardOperations(): void {
243
+        /** @var CardDavBackend&MockObject $backend */
244
+        $backend = $this->getMockBuilder(CardDavBackend::class)
245
+            ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
246
+            ->onlyMethods(['updateProperties', 'purgeProperties'])
247
+            ->getMock();
248
+
249
+        // create a new address book
250
+        $backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
251
+        $books = $backend->getAddressBooksForUser(self::UNIT_TEST_USER);
252
+        $this->assertEquals(1, count($books));
253
+        $bookId = $books[0]['id'];
254
+
255
+        $uri = $this->getUniqueID('card');
256
+        // updateProperties is expected twice, once for createCard and once for updateCard
257
+        $calls = [
258
+            [$bookId, $uri, $this->vcardTest0],
259
+            [$bookId, $uri, $this->vcardTest1],
260
+        ];
261
+        $backend->expects($this->exactly(count($calls)))
262
+            ->method('updateProperties')
263
+            ->willReturnCallback(function () use (&$calls): void {
264
+                $expected = array_shift($calls);
265
+                $this->assertEquals($expected, func_get_args());
266
+            });
267
+
268
+        // Expect event
269
+        $this->dispatcher
270
+            ->expects($this->exactly(3))
271
+            ->method('dispatchTyped');
272
+
273
+        // create a card
274
+        $backend->createCard($bookId, $uri, $this->vcardTest0);
275
+
276
+        // get all the cards
277
+        $cards = $backend->getCards($bookId);
278
+        $this->assertEquals(1, count($cards));
279
+        $this->assertEquals($this->vcardTest0, $cards[0]['carddata']);
280
+
281
+        // get the cards
282
+        $card = $backend->getCard($bookId, $uri);
283
+        $this->assertNotNull($card);
284
+        $this->assertArrayHasKey('id', $card);
285
+        $this->assertArrayHasKey('uri', $card);
286
+        $this->assertArrayHasKey('lastmodified', $card);
287
+        $this->assertArrayHasKey('etag', $card);
288
+        $this->assertArrayHasKey('size', $card);
289
+        $this->assertEquals($this->vcardTest0, $card['carddata']);
290
+
291
+        // update the card
292
+        $backend->updateCard($bookId, $uri, $this->vcardTest1);
293
+        $card = $backend->getCard($bookId, $uri);
294
+        $this->assertEquals($this->vcardTest1, $card['carddata']);
295
+
296
+        // delete the card
297
+        $backend->expects($this->once())->method('purgeProperties')->with($bookId, $card['id']);
298
+        $backend->deleteCard($bookId, $uri);
299
+        $cards = $backend->getCards($bookId);
300
+        $this->assertEquals(0, count($cards));
301
+    }
302
+
303
+    public function testMultiCard(): void {
304
+        $this->backend = $this->getMockBuilder(CardDavBackend::class)
305
+            ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
306
+            ->onlyMethods(['updateProperties'])
307
+            ->getMock();
308
+
309
+        // create a new address book
310
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
311
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
312
+        $this->assertEquals(1, count($books));
313
+        $bookId = $books[0]['id'];
314
+
315
+        // create a card
316
+        $uri0 = self::getUniqueID('card');
317
+        $this->backend->createCard($bookId, $uri0, $this->vcardTest0);
318
+        $uri1 = self::getUniqueID('card');
319
+        $this->backend->createCard($bookId, $uri1, $this->vcardTest1);
320
+        $uri2 = self::getUniqueID('card');
321
+        $this->backend->createCard($bookId, $uri2, $this->vcardTest2);
322
+
323
+        // get all the cards
324
+        $cards = $this->backend->getCards($bookId);
325
+        $this->assertEquals(3, count($cards));
326
+        usort($cards, function ($a, $b) {
327
+            return $a['id'] < $b['id'] ? -1 : 1;
328
+        });
329
+
330
+        $this->assertEquals($this->vcardTest0, $cards[0]['carddata']);
331
+        $this->assertEquals($this->vcardTest1, $cards[1]['carddata']);
332
+        $this->assertEquals($this->vcardTest2, $cards[2]['carddata']);
333
+
334
+        // get the cards 1 & 2 (not 0)
335
+        $cards = $this->backend->getMultipleCards($bookId, [$uri1, $uri2]);
336
+        $this->assertEquals(2, count($cards));
337
+        usort($cards, function ($a, $b) {
338
+            return $a['id'] < $b['id'] ? -1 : 1;
339
+        });
340
+        foreach ($cards as $index => $card) {
341
+            $this->assertArrayHasKey('id', $card);
342
+            $this->assertArrayHasKey('uri', $card);
343
+            $this->assertArrayHasKey('lastmodified', $card);
344
+            $this->assertArrayHasKey('etag', $card);
345
+            $this->assertArrayHasKey('size', $card);
346
+            $this->assertEquals($this->{ 'vcardTest' . ($index + 1) }, $card['carddata']);
347
+        }
348
+
349
+        // delete the card
350
+        $this->backend->deleteCard($bookId, $uri0);
351
+        $this->backend->deleteCard($bookId, $uri1);
352
+        $this->backend->deleteCard($bookId, $uri2);
353
+        $cards = $this->backend->getCards($bookId);
354
+        $this->assertEquals(0, count($cards));
355
+    }
356
+
357
+    public function testMultipleUIDOnDifferentAddressbooks(): void {
358
+        $this->backend = $this->getMockBuilder(CardDavBackend::class)
359
+            ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend,$this->config])
360
+            ->onlyMethods(['updateProperties'])
361
+            ->getMock();
362
+
363
+        // create 2 new address books
364
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
365
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example2', []);
366
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
367
+        $this->assertEquals(2, count($books));
368
+        $bookId0 = $books[0]['id'];
369
+        $bookId1 = $books[1]['id'];
370
+
371
+        // create a card
372
+        $uri0 = $this->getUniqueID('card');
373
+        $this->backend->createCard($bookId0, $uri0, $this->vcardTest0);
374
+
375
+        // create another card with same uid but in second address book
376
+        $uri1 = $this->getUniqueID('card');
377
+        $this->backend->createCard($bookId1, $uri1, $this->vcardTest0);
378
+    }
379
+
380
+    public function testMultipleUIDDenied(): void {
381
+        $this->backend = $this->getMockBuilder(CardDavBackend::class)
382
+            ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
383
+            ->onlyMethods(['updateProperties'])
384
+            ->getMock();
385
+
386
+        // create a new address book
387
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
388
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
389
+        $this->assertEquals(1, count($books));
390
+        $bookId = $books[0]['id'];
391
+
392
+        // create a card
393
+        $uri0 = $this->getUniqueID('card');
394
+        $this->backend->createCard($bookId, $uri0, $this->vcardTest0);
395
+
396
+        // create another card with same uid
397
+        $uri1 = $this->getUniqueID('card');
398
+        $this->expectException(BadRequest::class);
399
+        $test = $this->backend->createCard($bookId, $uri1, $this->vcardTest0);
400
+    }
401
+
402
+    public function testNoValidUID(): void {
403
+        $this->backend = $this->getMockBuilder(CardDavBackend::class)
404
+            ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
405
+            ->onlyMethods(['updateProperties'])
406
+            ->getMock();
407
+
408
+        // create a new address book
409
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
410
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
411
+        $this->assertEquals(1, count($books));
412
+        $bookId = $books[0]['id'];
413
+
414
+        // create a card without uid
415
+        $uri1 = $this->getUniqueID('card');
416
+        $this->expectException(BadRequest::class);
417
+        $test = $this->backend->createCard($bookId, $uri1, $this->vcardTestNoUID);
418
+    }
419
+
420
+    public function testDeleteWithoutCard(): void {
421
+        $this->backend = $this->getMockBuilder(CardDavBackend::class)
422
+            ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
423
+            ->onlyMethods([
424
+                'getCardId',
425
+                'addChange',
426
+                'purgeProperties',
427
+                'updateProperties',
428
+            ])
429
+            ->getMock();
430
+
431
+        // create a new address book
432
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
433
+        $books = $this->backend->getUsersOwnAddressBooks(self::UNIT_TEST_USER);
434
+        $this->assertEquals(1, count($books));
435
+
436
+        $bookId = $books[0]['id'];
437
+        $uri = $this->getUniqueID('card');
438
+
439
+        // create a new address book
440
+        $this->backend->expects($this->once())
441
+            ->method('getCardId')
442
+            ->with($bookId, $uri)
443
+            ->willThrowException(new \InvalidArgumentException());
444
+
445
+        $calls = [
446
+            [$bookId, $uri, 1],
447
+            [$bookId, $uri, 3],
448
+        ];
449
+        $this->backend->expects($this->exactly(count($calls)))
450
+            ->method('addChange')
451
+            ->willReturnCallback(function () use (&$calls): void {
452
+                $expected = array_shift($calls);
453
+                $this->assertEquals($expected, func_get_args());
454
+            });
455
+        $this->backend->expects($this->never())
456
+            ->method('purgeProperties');
457
+
458
+        // create a card
459
+        $this->backend->createCard($bookId, $uri, $this->vcardTest0);
460
+
461
+        // delete the card
462
+        $this->assertTrue($this->backend->deleteCard($bookId, $uri));
463
+    }
464
+
465
+    public function testSyncSupport(): void {
466
+        $this->backend = $this->getMockBuilder(CardDavBackend::class)
467
+            ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
468
+            ->onlyMethods(['updateProperties'])
469
+            ->getMock();
470
+
471
+        // create a new address book
472
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
473
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
474
+        $this->assertEquals(1, count($books));
475
+        $bookId = $books[0]['id'];
476
+
477
+        // fist call without synctoken
478
+        $changes = $this->backend->getChangesForAddressBook($bookId, '', 1);
479
+        $syncToken = $changes['syncToken'];
480
+
481
+        // add a change
482
+        $uri0 = $this->getUniqueID('card');
483
+        $this->backend->createCard($bookId, $uri0, $this->vcardTest0);
484
+
485
+        // look for changes
486
+        $changes = $this->backend->getChangesForAddressBook($bookId, $syncToken, 1);
487
+        $this->assertEquals($uri0, $changes['added'][0]);
488
+    }
489
+
490
+    public function testSharing(): void {
491
+        $this->userManager->expects($this->any())
492
+            ->method('userExists')
493
+            ->willReturn(true);
494
+        $this->groupManager->expects($this->any())
495
+            ->method('groupExists')
496
+            ->willReturn(true);
497
+        $this->principal->expects(self::any())
498
+            ->method('findByUri')
499
+            ->willReturn(self::UNIT_TEST_USER1);
500
+
501
+        $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
502
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER);
503
+        $this->assertEquals(1, count($books));
504
+
505
+        $l = $this->createMock(IL10N::class);
506
+        $exampleBook = new AddressBook($this->backend, $books[0], $l);
507
+        $this->backend->updateShares($exampleBook, [['href' => 'principal:' . self::UNIT_TEST_USER1]], []);
508
+
509
+        $shares = $this->backend->getShares($exampleBook->getResourceId());
510
+        $this->assertEquals(1, count($shares));
511
+
512
+        // adding the same sharee again has no effect
513
+        $this->backend->updateShares($exampleBook, [['href' => 'principal:' . self::UNIT_TEST_USER1]], []);
514
+
515
+        $shares = $this->backend->getShares($exampleBook->getResourceId());
516
+        $this->assertEquals(1, count($shares));
517
+
518
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1);
519
+        $this->assertEquals(1, count($books));
520
+
521
+        $this->backend->updateShares($exampleBook, [], ['principal:' . self::UNIT_TEST_USER1]);
522
+
523
+        $shares = $this->backend->getShares($exampleBook->getResourceId());
524
+        $this->assertEquals(0, count($shares));
525
+
526
+        $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1);
527
+        $this->assertEquals(0, count($books));
528
+    }
529
+
530
+    public function testUpdateProperties(): void {
531
+        $bookId = 42;
532
+        $cardUri = 'card-uri';
533
+        $cardId = 2;
534
+
535
+        $backend = $this->getMockBuilder(CardDavBackend::class)
536
+            ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher, $this->sharingBackend, $this->config])
537
+            ->onlyMethods(['getCardId'])->getMock();
538
+
539
+        $backend->expects($this->any())->method('getCardId')->willReturn($cardId);
540
+
541
+        // add properties for new vCard
542
+        $vCard = new VCard();
543
+        $vCard->UID = $cardUri;
544
+        $vCard->FN = 'John Doe';
545
+        $this->invokePrivate($backend, 'updateProperties', [$bookId, $cardUri, $vCard->serialize()]);
546
+
547
+        $query = $this->db->getQueryBuilder();
548
+        $query->select('*')
549
+            ->from('cards_properties')
550
+            ->orderBy('name');
551
+
552
+        $qResult = $query->execute();
553
+        $result = $qResult->fetchAll();
554
+        $qResult->closeCursor();
555
+
556
+        $this->assertSame(2, count($result));
557
+
558
+        $this->assertSame('FN', $result[0]['name']);
559
+        $this->assertSame('John Doe', $result[0]['value']);
560
+        $this->assertSame($bookId, (int)$result[0]['addressbookid']);
561
+        $this->assertSame($cardId, (int)$result[0]['cardid']);
562
+
563
+        $this->assertSame('UID', $result[1]['name']);
564
+        $this->assertSame($cardUri, $result[1]['value']);
565
+        $this->assertSame($bookId, (int)$result[1]['addressbookid']);
566
+        $this->assertSame($cardId, (int)$result[1]['cardid']);
567
+
568
+        // update properties for existing vCard
569
+        $vCard = new VCard();
570
+        $vCard->UID = $cardUri;
571
+        $this->invokePrivate($backend, 'updateProperties', [$bookId, $cardUri, $vCard->serialize()]);
572
+
573
+        $query = $this->db->getQueryBuilder();
574
+        $query->select('*')
575
+            ->from('cards_properties');
576
+
577
+        $qResult = $query->execute();
578
+        $result = $qResult->fetchAll();
579
+        $qResult->closeCursor();
580
+
581
+        $this->assertSame(1, count($result));
582
+
583
+        $this->assertSame('UID', $result[0]['name']);
584
+        $this->assertSame($cardUri, $result[0]['value']);
585
+        $this->assertSame($bookId, (int)$result[0]['addressbookid']);
586
+        $this->assertSame($cardId, (int)$result[0]['cardid']);
587
+    }
588
+
589
+    public function testPurgeProperties(): void {
590
+        $query = $this->db->getQueryBuilder();
591
+        $query->insert('cards_properties')
592
+            ->values(
593
+                [
594
+                    'addressbookid' => $query->createNamedParameter(1),
595
+                    'cardid' => $query->createNamedParameter(1),
596
+                    'name' => $query->createNamedParameter('name1'),
597
+                    'value' => $query->createNamedParameter('value1'),
598
+                    'preferred' => $query->createNamedParameter(0)
599
+                ]
600
+            );
601
+        $query->execute();
602
+
603
+        $query = $this->db->getQueryBuilder();
604
+        $query->insert('cards_properties')
605
+            ->values(
606
+                [
607
+                    'addressbookid' => $query->createNamedParameter(1),
608
+                    'cardid' => $query->createNamedParameter(2),
609
+                    'name' => $query->createNamedParameter('name2'),
610
+                    'value' => $query->createNamedParameter('value2'),
611
+                    'preferred' => $query->createNamedParameter(0)
612
+                ]
613
+            );
614
+        $query->execute();
615
+
616
+        $this->invokePrivate($this->backend, 'purgeProperties', [1, 1]);
617
+
618
+        $query = $this->db->getQueryBuilder();
619
+        $query->select('*')
620
+            ->from('cards_properties');
621
+
622
+        $qResult = $query->execute();
623
+        $result = $qResult->fetchAll();
624
+        $qResult->closeCursor();
625
+
626
+        $this->assertSame(1, count($result));
627
+        $this->assertSame(1, (int)$result[0]['addressbookid']);
628
+        $this->assertSame(2, (int)$result[0]['cardid']);
629
+    }
630
+
631
+    public function testGetCardId(): void {
632
+        $query = $this->db->getQueryBuilder();
633
+
634
+        $query->insert('cards')
635
+            ->values(
636
+                [
637
+                    'addressbookid' => $query->createNamedParameter(1),
638
+                    'carddata' => $query->createNamedParameter(''),
639
+                    'uri' => $query->createNamedParameter('uri'),
640
+                    'lastmodified' => $query->createNamedParameter(4738743),
641
+                    'etag' => $query->createNamedParameter('etag'),
642
+                    'size' => $query->createNamedParameter(120)
643
+                ]
644
+            );
645
+        $query->execute();
646
+        $id = $query->getLastInsertId();
647
+
648
+        $this->assertSame($id,
649
+            $this->invokePrivate($this->backend, 'getCardId', [1, 'uri']));
650
+    }
651
+
652
+
653
+    public function testGetCardIdFailed(): void {
654
+        $this->expectException(\InvalidArgumentException::class);
655
+
656
+        $this->invokePrivate($this->backend, 'getCardId', [1, 'uri']);
657
+    }
658
+
659
+    #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSearch')]
660
+    public function testSearch(string $pattern, array $properties, array $options, array $expected): void {
661
+        /** @var VCard $vCards */
662
+        $vCards = [];
663
+        $vCards[0] = new VCard();
664
+        $vCards[0]->add(new Text($vCards[0], 'UID', 'uid'));
665
+        $vCards[0]->add(new Text($vCards[0], 'FN', 'John Doe'));
666
+        $vCards[0]->add(new Text($vCards[0], 'CLOUD', '[email protected]'));
667
+        $vCards[1] = new VCard();
668
+        $vCards[1]->add(new Text($vCards[1], 'UID', 'uid'));
669
+        $vCards[1]->add(new Text($vCards[1], 'FN', 'John M. Doe'));
670
+        $vCards[2] = new VCard();
671
+        $vCards[2]->add(new Text($vCards[2], 'UID', 'uid'));
672
+        $vCards[2]->add(new Text($vCards[2], 'FN', 'find without options'));
673
+        $vCards[2]->add(new Text($vCards[2], 'CLOUD', '[email protected]'));
674
+
675
+        $vCardIds = [];
676
+        $query = $this->db->getQueryBuilder();
677
+        for ($i = 0; $i < 3; $i++) {
678
+            $query->insert($this->dbCardsTable)
679
+                ->values(
680
+                    [
681
+                        'addressbookid' => $query->createNamedParameter(0),
682
+                        'carddata' => $query->createNamedParameter($vCards[$i]->serialize(), IQueryBuilder::PARAM_LOB),
683
+                        'uri' => $query->createNamedParameter('uri' . $i),
684
+                        'lastmodified' => $query->createNamedParameter(time()),
685
+                        'etag' => $query->createNamedParameter('etag' . $i),
686
+                        'size' => $query->createNamedParameter(120),
687
+                    ]
688
+                );
689
+            $query->execute();
690
+            $vCardIds[] = $query->getLastInsertId();
691
+        }
692
+
693
+        $query = $this->db->getQueryBuilder();
694
+        $query->insert($this->dbCardsPropertiesTable)
695
+            ->values(
696
+                [
697
+                    'addressbookid' => $query->createNamedParameter(0),
698
+                    'cardid' => $query->createNamedParameter($vCardIds[0]),
699
+                    'name' => $query->createNamedParameter('FN'),
700
+                    'value' => $query->createNamedParameter('John Doe'),
701
+                    'preferred' => $query->createNamedParameter(0)
702
+                ]
703
+            );
704
+        $query->execute();
705
+        $query = $this->db->getQueryBuilder();
706
+        $query->insert($this->dbCardsPropertiesTable)
707
+            ->values(
708
+                [
709
+                    'addressbookid' => $query->createNamedParameter(0),
710
+                    'cardid' => $query->createNamedParameter($vCardIds[0]),
711
+                    'name' => $query->createNamedParameter('CLOUD'),
712
+                    'value' => $query->createNamedParameter('[email protected]'),
713
+                    'preferred' => $query->createNamedParameter(0)
714
+                ]
715
+            );
716
+        $query->execute();
717
+        $query = $this->db->getQueryBuilder();
718
+        $query->insert($this->dbCardsPropertiesTable)
719
+            ->values(
720
+                [
721
+                    'addressbookid' => $query->createNamedParameter(0),
722
+                    'cardid' => $query->createNamedParameter($vCardIds[1]),
723
+                    'name' => $query->createNamedParameter('FN'),
724
+                    'value' => $query->createNamedParameter('John M. Doe'),
725
+                    'preferred' => $query->createNamedParameter(0)
726
+                ]
727
+            );
728
+        $query->execute();
729
+        $query = $this->db->getQueryBuilder();
730
+        $query->insert($this->dbCardsPropertiesTable)
731
+            ->values(
732
+                [
733
+                    'addressbookid' => $query->createNamedParameter(0),
734
+                    'cardid' => $query->createNamedParameter($vCardIds[2]),
735
+                    'name' => $query->createNamedParameter('FN'),
736
+                    'value' => $query->createNamedParameter('find without options'),
737
+                    'preferred' => $query->createNamedParameter(0)
738
+                ]
739
+            );
740
+        $query->execute();
741
+        $query = $this->db->getQueryBuilder();
742
+        $query->insert($this->dbCardsPropertiesTable)
743
+            ->values(
744
+                [
745
+                    'addressbookid' => $query->createNamedParameter(0),
746
+                    'cardid' => $query->createNamedParameter($vCardIds[2]),
747
+                    'name' => $query->createNamedParameter('CLOUD'),
748
+                    'value' => $query->createNamedParameter('[email protected]'),
749
+                    'preferred' => $query->createNamedParameter(0)
750
+                ]
751
+            );
752
+        $query->execute();
753
+
754
+        $result = $this->backend->search(0, $pattern, $properties, $options);
755
+
756
+        // check result
757
+        $this->assertSame(count($expected), count($result));
758
+        $found = [];
759
+        foreach ($result as $r) {
760
+            foreach ($expected as $exp) {
761
+                if ($r['uri'] === $exp[0] && strpos($r['carddata'], $exp[1]) > 0) {
762
+                    $found[$exp[1]] = true;
763
+                    break;
764
+                }
765
+            }
766
+        }
767
+
768
+        $this->assertSame(count($expected), count($found));
769
+    }
770
+
771
+    public static function dataTestSearch(): array {
772
+        return [
773
+            ['John', ['FN'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
774
+            ['M. Doe', ['FN'], [], [['uri1', 'John M. Doe']]],
775
+            ['Do', ['FN'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
776
+            'check if duplicates are handled correctly' => ['John', ['FN', 'CLOUD'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
777
+            'case insensitive' => ['john', ['FN'], [], [['uri0', 'John Doe'], ['uri1', 'John M. Doe']]],
778
+            'limit' => ['john', ['FN'], ['limit' => 1], [['uri0', 'John Doe']]],
779
+            'limit and offset' => ['john', ['FN'], ['limit' => 1, 'offset' => 1], [['uri1', 'John M. Doe']]],
780
+            'find "_" escaped' => ['_', ['CLOUD'], [], [['uri2', 'find without options']]],
781
+            'find not empty CLOUD' => ['%_%', ['CLOUD'], ['escape_like_param' => false], [['uri0', 'John Doe'], ['uri2', 'find without options']]],
782
+        ];
783
+    }
784
+
785
+    public function testGetCardUri(): void {
786
+        $query = $this->db->getQueryBuilder();
787
+        $query->insert($this->dbCardsTable)
788
+            ->values(
789
+                [
790
+                    'addressbookid' => $query->createNamedParameter(1),
791
+                    'carddata' => $query->createNamedParameter('carddata', IQueryBuilder::PARAM_LOB),
792
+                    'uri' => $query->createNamedParameter('uri'),
793
+                    'lastmodified' => $query->createNamedParameter(5489543),
794
+                    'etag' => $query->createNamedParameter('etag'),
795
+                    'size' => $query->createNamedParameter(120),
796
+                ]
797
+            );
798
+        $query->execute();
799
+
800
+        $id = $query->getLastInsertId();
801
+
802
+        $this->assertSame('uri', $this->backend->getCardUri($id));
803
+    }
804
+
805
+
806
+    public function testGetCardUriFailed(): void {
807
+        $this->expectException(\InvalidArgumentException::class);
808
+
809
+        $this->backend->getCardUri(1);
810
+    }
811
+
812
+    public function testGetContact(): void {
813
+        $query = $this->db->getQueryBuilder();
814
+        for ($i = 0; $i < 2; $i++) {
815
+            $query->insert($this->dbCardsTable)
816
+                ->values(
817
+                    [
818
+                        'addressbookid' => $query->createNamedParameter($i),
819
+                        'carddata' => $query->createNamedParameter('carddata' . $i, IQueryBuilder::PARAM_LOB),
820
+                        'uri' => $query->createNamedParameter('uri' . $i),
821
+                        'lastmodified' => $query->createNamedParameter(5489543),
822
+                        'etag' => $query->createNamedParameter('etag' . $i),
823
+                        'size' => $query->createNamedParameter(120),
824
+                    ]
825
+                );
826
+            $query->execute();
827
+        }
828
+
829
+        $result = $this->backend->getContact(0, 'uri0');
830
+        $this->assertSame(8, count($result));
831
+        $this->assertSame(0, (int)$result['addressbookid']);
832
+        $this->assertSame('uri0', $result['uri']);
833
+        $this->assertSame(5489543, (int)$result['lastmodified']);
834
+        $this->assertSame('"etag0"', $result['etag']);
835
+        $this->assertSame(120, (int)$result['size']);
836
+
837
+        // this shouldn't return any result because 'uri1' is in address book 1
838
+        // see https://github.com/nextcloud/server/issues/229
839
+        $result = $this->backend->getContact(0, 'uri1');
840
+        $this->assertEmpty($result);
841
+    }
842
+
843
+    public function testGetContactFail(): void {
844
+        $this->assertEmpty($this->backend->getContact(0, 'uri'));
845
+    }
846
+
847
+    public function testCollectCardProperties(): void {
848
+        $query = $this->db->getQueryBuilder();
849
+        $query->insert($this->dbCardsPropertiesTable)
850
+            ->values(
851
+                [
852
+                    'addressbookid' => $query->createNamedParameter(666),
853
+                    'cardid' => $query->createNamedParameter(777),
854
+                    'name' => $query->createNamedParameter('FN'),
855
+                    'value' => $query->createNamedParameter('John Doe'),
856
+                    'preferred' => $query->createNamedParameter(0)
857
+                ]
858
+            )
859
+            ->execute();
860
+
861
+        $result = $this->backend->collectCardProperties(666, 'FN');
862
+        $this->assertEquals(['John Doe'], $result);
863
+    }
864
+
865
+    /**
866
+     * @throws \OCP\DB\Exception
867
+     * @throws \Sabre\DAV\Exception\BadRequest
868
+     */
869
+    public function testPruneOutdatedSyncTokens(): void {
870
+        $addressBookId = $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []);
871
+        $changes = $this->backend->getChangesForAddressBook($addressBookId, '', 1);
872
+        $syncToken = $changes['syncToken'];
873
+
874
+        $uri = $this->getUniqueID('card');
875
+        $this->backend->createCard($addressBookId, $uri, $this->vcardTest0);
876
+        $this->backend->updateCard($addressBookId, $uri, $this->vcardTest1);
877
+
878
+        // Do not delete anything if week data as old as ts=0
879
+        $deleted = $this->backend->pruneOutdatedSyncTokens(0, 0);
880
+        self::assertSame(0, $deleted);
881
+
882
+        $deleted = $this->backend->pruneOutdatedSyncTokens(0, time());
883
+        // At least one from the object creation and one from the object update
884
+        $this->assertGreaterThanOrEqual(2, $deleted);
885
+        $changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 1);
886
+        $this->assertEmpty($changes['added']);
887
+        $this->assertEmpty($changes['modified']);
888
+        $this->assertEmpty($changes['deleted']);
889
+
890
+        // Test that objects remain
891
+
892
+        // Currently changes are empty
893
+        $changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 100);
894
+        $this->assertEquals(0, count($changes['added'] + $changes['modified'] + $changes['deleted']));
895
+
896
+        // Create card
897
+        $uri = $this->getUniqueID('card');
898
+        $this->backend->createCard($addressBookId, $uri, $this->vcardTest0);
899
+        // We now have one add
900
+        $changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 100);
901
+        $this->assertEquals(1, count($changes['added']));
902
+        $this->assertEmpty($changes['modified']);
903
+        $this->assertEmpty($changes['deleted']);
904
+
905
+        // Update card
906
+        $this->backend->updateCard($addressBookId, $uri, $this->vcardTest1);
907
+        // One add, one modify, but shortened to modify
908
+        $changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 100);
909
+        $this->assertEmpty($changes['added']);
910
+        $this->assertEquals(1, count($changes['modified']));
911
+        $this->assertEmpty($changes['deleted']);
912
+
913
+        // Delete all but last change
914
+        $deleted = $this->backend->pruneOutdatedSyncTokens(1, time());
915
+        $this->assertEquals(1, $deleted); // We had two changes before, now one
916
+
917
+        // Only update should remain
918
+        $changes = $this->backend->getChangesForAddressBook($addressBookId, $syncToken, 100);
919
+        $this->assertEmpty($changes['added']);
920
+        $this->assertEquals(1, count($changes['modified']));
921
+        $this->assertEmpty($changes['deleted']);
922
+
923
+        // Check that no crash occurs when prune is called without current changes
924
+        $deleted = $this->backend->pruneOutdatedSyncTokens(1, time());
925
+    }
926 926
 }
Please login to merge, or discard this patch.
apps/dav/appinfo/v1/caldav.php 1 patch
Indentation   +31 added lines, -31 removed lines patch added patch discarded remove patch
@@ -38,25 +38,25 @@  discard block
 block discarded – undo
38 38
 use Psr\Log\LoggerInterface;
39 39
 
40 40
 $authBackend = new Auth(
41
-	Server::get(ISession::class),
42
-	Server::get(IUserSession::class),
43
-	Server::get(IRequest::class),
44
-	Server::get(\OC\Authentication\TwoFactorAuth\Manager::class),
45
-	Server::get(IThrottler::class),
46
-	'principals/'
41
+    Server::get(ISession::class),
42
+    Server::get(IUserSession::class),
43
+    Server::get(IRequest::class),
44
+    Server::get(\OC\Authentication\TwoFactorAuth\Manager::class),
45
+    Server::get(IThrottler::class),
46
+    'principals/'
47 47
 );
48 48
 $principalBackend = new Principal(
49
-	Server::get(IUserManager::class),
50
-	Server::get(IGroupManager::class),
51
-	Server::get(IAccountManager::class),
52
-	Server::get(\OCP\Share\IManager::class),
53
-	Server::get(IUserSession::class),
54
-	Server::get(IAppManager::class),
55
-	Server::get(ProxyMapper::class),
56
-	Server::get(KnownUserService::class),
57
-	Server::get(IConfig::class),
58
-	\OC::$server->getL10NFactory(),
59
-	'principals/'
49
+    Server::get(IUserManager::class),
50
+    Server::get(IGroupManager::class),
51
+    Server::get(IAccountManager::class),
52
+    Server::get(\OCP\Share\IManager::class),
53
+    Server::get(IUserSession::class),
54
+    Server::get(IAppManager::class),
55
+    Server::get(ProxyMapper::class),
56
+    Server::get(KnownUserService::class),
57
+    Server::get(IConfig::class),
58
+    \OC::$server->getL10NFactory(),
59
+    'principals/'
60 60
 );
61 61
 $db = Server::get(IDBConnection::class);
62 62
 $userManager = Server::get(IUserManager::class);
@@ -69,16 +69,16 @@  discard block
 block discarded – undo
69 69
 $federatedCalendarFactory = Server::get(FederatedCalendarFactory::class);
70 70
 
71 71
 $calDavBackend = new CalDavBackend(
72
-	$db,
73
-	$principalBackend,
74
-	$userManager,
75
-	$random,
76
-	$logger,
77
-	$dispatcher,
78
-	$config,
79
-	Server::get(\OCA\DAV\CalDAV\Sharing\Backend::class),
80
-	Server::get(FederatedCalendarMapper::class),
81
-	true
72
+    $db,
73
+    $principalBackend,
74
+    $userManager,
75
+    $random,
76
+    $logger,
77
+    $dispatcher,
78
+    $config,
79
+    Server::get(\OCA\DAV\CalDAV\Sharing\Backend::class),
80
+    Server::get(FederatedCalendarMapper::class),
81
+    true
82 82
 );
83 83
 
84 84
 $debugging = Server::get(IConfig::class)->getSystemValue('debug', false);
@@ -92,8 +92,8 @@  discard block
 block discarded – undo
92 92
 $addressBookRoot->disableListing = !$debugging; // Disable listing
93 93
 
94 94
 $nodes = [
95
-	$principalCollection,
96
-	$addressBookRoot,
95
+    $principalCollection,
96
+    $addressBookRoot,
97 97
 ];
98 98
 
99 99
 // Fire up server
@@ -109,7 +109,7 @@  discard block
 block discarded – undo
109 109
 
110 110
 $server->addPlugin(new LegacyDAVACL());
111 111
 if ($debugging) {
112
-	$server->addPlugin(new Sabre\DAV\Browser\Plugin());
112
+    $server->addPlugin(new Sabre\DAV\Browser\Plugin());
113 113
 }
114 114
 
115 115
 $server->addPlugin(new \Sabre\DAV\Sync\Plugin());
@@ -117,7 +117,7 @@  discard block
 block discarded – undo
117 117
 $server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin(Server::get(IConfig::class), Server::get(LoggerInterface::class), Server::get(DefaultCalendarValidator::class)));
118 118
 
119 119
 if ($sendInvitations) {
120
-	$server->addPlugin(Server::get(IMipPlugin::class));
120
+    $server->addPlugin(Server::get(IMipPlugin::class));
121 121
 }
122 122
 $server->addPlugin(new ExceptionLoggerPlugin('caldav', $logger));
123 123
 $server->addPlugin(Server::get(RateLimitingPlugin::class));
Please login to merge, or discard this patch.
apps/dav/composer/composer/autoload_classmap.php 1 patch
Spacing   +433 added lines, -433 removed lines patch added patch discarded remove patch
@@ -6,437 +6,437 @@
 block discarded – undo
6 6
 $baseDir = $vendorDir;
7 7
 
8 8
 return array(
9
-    'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
10
-    'OCA\\DAV\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
11
-    'OCA\\DAV\\AppInfo\\PluginManager' => $baseDir . '/../lib/AppInfo/PluginManager.php',
12
-    'OCA\\DAV\\Avatars\\AvatarHome' => $baseDir . '/../lib/Avatars/AvatarHome.php',
13
-    'OCA\\DAV\\Avatars\\AvatarNode' => $baseDir . '/../lib/Avatars/AvatarNode.php',
14
-    'OCA\\DAV\\Avatars\\RootCollection' => $baseDir . '/../lib/Avatars/RootCollection.php',
15
-    'OCA\\DAV\\BackgroundJob\\BuildReminderIndexBackgroundJob' => $baseDir . '/../lib/BackgroundJob/BuildReminderIndexBackgroundJob.php',
16
-    'OCA\\DAV\\BackgroundJob\\CalendarRetentionJob' => $baseDir . '/../lib/BackgroundJob/CalendarRetentionJob.php',
17
-    'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => $baseDir . '/../lib/BackgroundJob/CleanupDirectLinksJob.php',
18
-    'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => $baseDir . '/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
19
-    'OCA\\DAV\\BackgroundJob\\CleanupOrphanedChildrenJob' => $baseDir . '/../lib/BackgroundJob/CleanupOrphanedChildrenJob.php',
20
-    'OCA\\DAV\\BackgroundJob\\DeleteOutdatedSchedulingObjects' => $baseDir . '/../lib/BackgroundJob/DeleteOutdatedSchedulingObjects.php',
21
-    'OCA\\DAV\\BackgroundJob\\EventReminderJob' => $baseDir . '/../lib/BackgroundJob/EventReminderJob.php',
22
-    'OCA\\DAV\\BackgroundJob\\FederatedCalendarPeriodicSyncJob' => $baseDir . '/../lib/BackgroundJob/FederatedCalendarPeriodicSyncJob.php',
23
-    'OCA\\DAV\\BackgroundJob\\FederatedCalendarSyncJob' => $baseDir . '/../lib/BackgroundJob/FederatedCalendarSyncJob.php',
24
-    'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => $baseDir . '/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
25
-    'OCA\\DAV\\BackgroundJob\\OutOfOfficeEventDispatcherJob' => $baseDir . '/../lib/BackgroundJob/OutOfOfficeEventDispatcherJob.php',
26
-    'OCA\\DAV\\BackgroundJob\\PruneOutdatedSyncTokensJob' => $baseDir . '/../lib/BackgroundJob/PruneOutdatedSyncTokensJob.php',
27
-    'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => $baseDir . '/../lib/BackgroundJob/RefreshWebcalJob.php',
28
-    'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => $baseDir . '/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
29
-    'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => $baseDir . '/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
30
-    'OCA\\DAV\\BackgroundJob\\UploadCleanup' => $baseDir . '/../lib/BackgroundJob/UploadCleanup.php',
31
-    'OCA\\DAV\\BackgroundJob\\UserStatusAutomation' => $baseDir . '/../lib/BackgroundJob/UserStatusAutomation.php',
32
-    'OCA\\DAV\\BulkUpload\\BulkUploadPlugin' => $baseDir . '/../lib/BulkUpload/BulkUploadPlugin.php',
33
-    'OCA\\DAV\\BulkUpload\\MultipartRequestParser' => $baseDir . '/../lib/BulkUpload/MultipartRequestParser.php',
34
-    'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir . '/../lib/CalDAV/Activity/Backend.php',
35
-    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Filter/Calendar.php',
36
-    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Filter/Todo.php',
37
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir . '/../lib/CalDAV/Activity/Provider/Base.php',
38
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Provider/Calendar.php',
39
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir . '/../lib/CalDAV/Activity/Provider/Event.php',
40
-    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Provider/Todo.php',
41
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\CalDAVSetting' => $baseDir . '/../lib/CalDAV/Activity/Setting/CalDAVSetting.php',
42
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Setting/Calendar.php',
43
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir . '/../lib/CalDAV/Activity/Setting/Event.php',
44
-    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Setting/Todo.php',
45
-    'OCA\\DAV\\CalDAV\\AppCalendar\\AppCalendar' => $baseDir . '/../lib/CalDAV/AppCalendar/AppCalendar.php',
46
-    'OCA\\DAV\\CalDAV\\AppCalendar\\AppCalendarPlugin' => $baseDir . '/../lib/CalDAV/AppCalendar/AppCalendarPlugin.php',
47
-    'OCA\\DAV\\CalDAV\\AppCalendar\\CalendarObject' => $baseDir . '/../lib/CalDAV/AppCalendar/CalendarObject.php',
48
-    'OCA\\DAV\\CalDAV\\Auth\\CustomPrincipalPlugin' => $baseDir . '/../lib/CalDAV/Auth/CustomPrincipalPlugin.php',
49
-    'OCA\\DAV\\CalDAV\\Auth\\PublicPrincipalPlugin' => $baseDir . '/../lib/CalDAV/Auth/PublicPrincipalPlugin.php',
50
-    'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => $baseDir . '/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
51
-    'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir . '/../lib/CalDAV/BirthdayService.php',
52
-    'OCA\\DAV\\CalDAV\\CachedSubscription' => $baseDir . '/../lib/CalDAV/CachedSubscription.php',
53
-    'OCA\\DAV\\CalDAV\\CachedSubscriptionImpl' => $baseDir . '/../lib/CalDAV/CachedSubscriptionImpl.php',
54
-    'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => $baseDir . '/../lib/CalDAV/CachedSubscriptionObject.php',
55
-    'OCA\\DAV\\CalDAV\\CachedSubscriptionProvider' => $baseDir . '/../lib/CalDAV/CachedSubscriptionProvider.php',
56
-    'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir . '/../lib/CalDAV/CalDavBackend.php',
57
-    'OCA\\DAV\\CalDAV\\Calendar' => $baseDir . '/../lib/CalDAV/Calendar.php',
58
-    'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir . '/../lib/CalDAV/CalendarHome.php',
59
-    'OCA\\DAV\\CalDAV\\CalendarImpl' => $baseDir . '/../lib/CalDAV/CalendarImpl.php',
60
-    'OCA\\DAV\\CalDAV\\CalendarManager' => $baseDir . '/../lib/CalDAV/CalendarManager.php',
61
-    'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir . '/../lib/CalDAV/CalendarObject.php',
62
-    'OCA\\DAV\\CalDAV\\CalendarProvider' => $baseDir . '/../lib/CalDAV/CalendarProvider.php',
63
-    'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir . '/../lib/CalDAV/CalendarRoot.php',
64
-    'OCA\\DAV\\CalDAV\\DefaultCalendarValidator' => $baseDir . '/../lib/CalDAV/DefaultCalendarValidator.php',
65
-    'OCA\\DAV\\CalDAV\\EmbeddedCalDavServer' => $baseDir . '/../lib/CalDAV/EmbeddedCalDavServer.php',
66
-    'OCA\\DAV\\CalDAV\\EventComparisonService' => $baseDir . '/../lib/CalDAV/EventComparisonService.php',
67
-    'OCA\\DAV\\CalDAV\\EventReader' => $baseDir . '/../lib/CalDAV/EventReader.php',
68
-    'OCA\\DAV\\CalDAV\\EventReaderRDate' => $baseDir . '/../lib/CalDAV/EventReaderRDate.php',
69
-    'OCA\\DAV\\CalDAV\\EventReaderRRule' => $baseDir . '/../lib/CalDAV/EventReaderRRule.php',
70
-    'OCA\\DAV\\CalDAV\\Export\\ExportService' => $baseDir . '/../lib/CalDAV/Export/ExportService.php',
71
-    'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationConfig' => $baseDir . '/../lib/CalDAV/Federation/CalendarFederationConfig.php',
72
-    'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationNotifier' => $baseDir . '/../lib/CalDAV/Federation/CalendarFederationNotifier.php',
73
-    'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationProvider' => $baseDir . '/../lib/CalDAV/Federation/CalendarFederationProvider.php',
74
-    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendar' => $baseDir . '/../lib/CalDAV/Federation/FederatedCalendar.php',
75
-    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarAuth' => $baseDir . '/../lib/CalDAV/Federation/FederatedCalendarAuth.php',
76
-    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarEntity' => $baseDir . '/../lib/CalDAV/Federation/FederatedCalendarEntity.php',
77
-    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarFactory' => $baseDir . '/../lib/CalDAV/Federation/FederatedCalendarFactory.php',
78
-    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarImpl' => $baseDir . '/../lib/CalDAV/Federation/FederatedCalendarImpl.php',
79
-    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarMapper' => $baseDir . '/../lib/CalDAV/Federation/FederatedCalendarMapper.php',
80
-    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarSyncService' => $baseDir . '/../lib/CalDAV/Federation/FederatedCalendarSyncService.php',
81
-    'OCA\\DAV\\CalDAV\\Federation\\FederationSharingService' => $baseDir . '/../lib/CalDAV/Federation/FederationSharingService.php',
82
-    'OCA\\DAV\\CalDAV\\Federation\\Protocol\\CalendarFederationProtocolV1' => $baseDir . '/../lib/CalDAV/Federation/Protocol/CalendarFederationProtocolV1.php',
83
-    'OCA\\DAV\\CalDAV\\Federation\\Protocol\\CalendarProtocolParseException' => $baseDir . '/../lib/CalDAV/Federation/Protocol/CalendarProtocolParseException.php',
84
-    'OCA\\DAV\\CalDAV\\Federation\\Protocol\\ICalendarFederationProtocol' => $baseDir . '/../lib/CalDAV/Federation/Protocol/ICalendarFederationProtocol.php',
85
-    'OCA\\DAV\\CalDAV\\Federation\\RemoteUserCalendarHome' => $baseDir . '/../lib/CalDAV/Federation/RemoteUserCalendarHome.php',
86
-    'OCA\\DAV\\CalDAV\\FreeBusy\\FreeBusyGenerator' => $baseDir . '/../lib/CalDAV/FreeBusy/FreeBusyGenerator.php',
87
-    'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => $baseDir . '/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
88
-    'OCA\\DAV\\CalDAV\\IRestorable' => $baseDir . '/../lib/CalDAV/IRestorable.php',
89
-    'OCA\\DAV\\CalDAV\\Import\\ImportService' => $baseDir . '/../lib/CalDAV/Import/ImportService.php',
90
-    'OCA\\DAV\\CalDAV\\Import\\TextImporter' => $baseDir . '/../lib/CalDAV/Import/TextImporter.php',
91
-    'OCA\\DAV\\CalDAV\\Import\\XmlImporter' => $baseDir . '/../lib/CalDAV/Import/XmlImporter.php',
92
-    'OCA\\DAV\\CalDAV\\Integration\\ExternalCalendar' => $baseDir . '/../lib/CalDAV/Integration/ExternalCalendar.php',
93
-    'OCA\\DAV\\CalDAV\\Integration\\ICalendarProvider' => $baseDir . '/../lib/CalDAV/Integration/ICalendarProvider.php',
94
-    'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => $baseDir . '/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
95
-    'OCA\\DAV\\CalDAV\\Outbox' => $baseDir . '/../lib/CalDAV/Outbox.php',
96
-    'OCA\\DAV\\CalDAV\\Plugin' => $baseDir . '/../lib/CalDAV/Plugin.php',
97
-    'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir . '/../lib/CalDAV/Principal/Collection.php',
98
-    'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir . '/../lib/CalDAV/Principal/User.php',
99
-    'OCA\\DAV\\CalDAV\\Proxy\\Proxy' => $baseDir . '/../lib/CalDAV/Proxy/Proxy.php',
100
-    'OCA\\DAV\\CalDAV\\Proxy\\ProxyMapper' => $baseDir . '/../lib/CalDAV/Proxy/ProxyMapper.php',
101
-    'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir . '/../lib/CalDAV/PublicCalendar.php',
102
-    'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir . '/../lib/CalDAV/PublicCalendarObject.php',
103
-    'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir . '/../lib/CalDAV/PublicCalendarRoot.php',
104
-    'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir . '/../lib/CalDAV/Publishing/PublishPlugin.php',
105
-    'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir . '/../lib/CalDAV/Publishing/Xml/Publisher.php',
106
-    'OCA\\DAV\\CalDAV\\Reminder\\Backend' => $baseDir . '/../lib/CalDAV/Reminder/Backend.php',
107
-    'OCA\\DAV\\CalDAV\\Reminder\\INotificationProvider' => $baseDir . '/../lib/CalDAV/Reminder/INotificationProvider.php',
108
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProviderManager' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProviderManager.php',
109
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AbstractProvider' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php',
110
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AudioProvider' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/AudioProvider.php',
111
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\EmailProvider' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php',
112
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\ProviderNotAvailableException' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/ProviderNotAvailableException.php',
113
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\PushProvider' => $baseDir . '/../lib/CalDAV/Reminder/NotificationProvider/PushProvider.php',
114
-    'OCA\\DAV\\CalDAV\\Reminder\\NotificationTypeDoesNotExistException' => $baseDir . '/../lib/CalDAV/Reminder/NotificationTypeDoesNotExistException.php',
115
-    'OCA\\DAV\\CalDAV\\Reminder\\Notifier' => $baseDir . '/../lib/CalDAV/Reminder/Notifier.php',
116
-    'OCA\\DAV\\CalDAV\\Reminder\\ReminderService' => $baseDir . '/../lib/CalDAV/Reminder/ReminderService.php',
117
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
118
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
119
-    'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => $baseDir . '/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
120
-    'OCA\\DAV\\CalDAV\\RetentionService' => $baseDir . '/../lib/CalDAV/RetentionService.php',
121
-    'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir . '/../lib/CalDAV/Schedule/IMipPlugin.php',
122
-    'OCA\\DAV\\CalDAV\\Schedule\\IMipService' => $baseDir . '/../lib/CalDAV/Schedule/IMipService.php',
123
-    'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir . '/../lib/CalDAV/Schedule/Plugin.php',
124
-    'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir . '/../lib/CalDAV/Search/SearchPlugin.php',
125
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
126
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
127
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
128
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
129
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
130
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
131
-    'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
132
-    'OCA\\DAV\\CalDAV\\Security\\RateLimitingPlugin' => $baseDir . '/../lib/CalDAV/Security/RateLimitingPlugin.php',
133
-    'OCA\\DAV\\CalDAV\\Sharing\\Backend' => $baseDir . '/../lib/CalDAV/Sharing/Backend.php',
134
-    'OCA\\DAV\\CalDAV\\Sharing\\Service' => $baseDir . '/../lib/CalDAV/Sharing/Service.php',
135
-    'OCA\\DAV\\CalDAV\\Status\\StatusService' => $baseDir . '/../lib/CalDAV/Status/StatusService.php',
136
-    'OCA\\DAV\\CalDAV\\SyncService' => $baseDir . '/../lib/CalDAV/SyncService.php',
137
-    'OCA\\DAV\\CalDAV\\SyncServiceResult' => $baseDir . '/../lib/CalDAV/SyncServiceResult.php',
138
-    'OCA\\DAV\\CalDAV\\TimeZoneFactory' => $baseDir . '/../lib/CalDAV/TimeZoneFactory.php',
139
-    'OCA\\DAV\\CalDAV\\TimezoneService' => $baseDir . '/../lib/CalDAV/TimezoneService.php',
140
-    'OCA\\DAV\\CalDAV\\TipBroker' => $baseDir . '/../lib/CalDAV/TipBroker.php',
141
-    'OCA\\DAV\\CalDAV\\Trashbin\\DeletedCalendarObject' => $baseDir . '/../lib/CalDAV/Trashbin/DeletedCalendarObject.php',
142
-    'OCA\\DAV\\CalDAV\\Trashbin\\DeletedCalendarObjectsCollection' => $baseDir . '/../lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php',
143
-    'OCA\\DAV\\CalDAV\\Trashbin\\Plugin' => $baseDir . '/../lib/CalDAV/Trashbin/Plugin.php',
144
-    'OCA\\DAV\\CalDAV\\Trashbin\\RestoreTarget' => $baseDir . '/../lib/CalDAV/Trashbin/RestoreTarget.php',
145
-    'OCA\\DAV\\CalDAV\\Trashbin\\TrashbinHome' => $baseDir . '/../lib/CalDAV/Trashbin/TrashbinHome.php',
146
-    'OCA\\DAV\\CalDAV\\UpcomingEvent' => $baseDir . '/../lib/CalDAV/UpcomingEvent.php',
147
-    'OCA\\DAV\\CalDAV\\UpcomingEventsService' => $baseDir . '/../lib/CalDAV/UpcomingEventsService.php',
148
-    'OCA\\DAV\\CalDAV\\Validation\\CalDavValidatePlugin' => $baseDir . '/../lib/CalDAV/Validation/CalDavValidatePlugin.php',
149
-    'OCA\\DAV\\CalDAV\\WebcalCaching\\Connection' => $baseDir . '/../lib/CalDAV/WebcalCaching/Connection.php',
150
-    'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => $baseDir . '/../lib/CalDAV/WebcalCaching/Plugin.php',
151
-    'OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService' => $baseDir . '/../lib/CalDAV/WebcalCaching/RefreshWebcalService.php',
152
-    'OCA\\DAV\\Capabilities' => $baseDir . '/../lib/Capabilities.php',
153
-    'OCA\\DAV\\CardDAV\\Activity\\Backend' => $baseDir . '/../lib/CardDAV/Activity/Backend.php',
154
-    'OCA\\DAV\\CardDAV\\Activity\\Filter' => $baseDir . '/../lib/CardDAV/Activity/Filter.php',
155
-    'OCA\\DAV\\CardDAV\\Activity\\Provider\\Addressbook' => $baseDir . '/../lib/CardDAV/Activity/Provider/Addressbook.php',
156
-    'OCA\\DAV\\CardDAV\\Activity\\Provider\\Base' => $baseDir . '/../lib/CardDAV/Activity/Provider/Base.php',
157
-    'OCA\\DAV\\CardDAV\\Activity\\Provider\\Card' => $baseDir . '/../lib/CardDAV/Activity/Provider/Card.php',
158
-    'OCA\\DAV\\CardDAV\\Activity\\Setting' => $baseDir . '/../lib/CardDAV/Activity/Setting.php',
159
-    'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir . '/../lib/CardDAV/AddressBook.php',
160
-    'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir . '/../lib/CardDAV/AddressBookImpl.php',
161
-    'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir . '/../lib/CardDAV/AddressBookRoot.php',
162
-    'OCA\\DAV\\CardDAV\\Card' => $baseDir . '/../lib/CardDAV/Card.php',
163
-    'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir . '/../lib/CardDAV/CardDavBackend.php',
164
-    'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir . '/../lib/CardDAV/ContactsManager.php',
165
-    'OCA\\DAV\\CardDAV\\Converter' => $baseDir . '/../lib/CardDAV/Converter.php',
166
-    'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => $baseDir . '/../lib/CardDAV/HasPhotoPlugin.php',
167
-    'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir . '/../lib/CardDAV/ImageExportPlugin.php',
168
-    'OCA\\DAV\\CardDAV\\Integration\\ExternalAddressBook' => $baseDir . '/../lib/CardDAV/Integration/ExternalAddressBook.php',
169
-    'OCA\\DAV\\CardDAV\\Integration\\IAddressBookProvider' => $baseDir . '/../lib/CardDAV/Integration/IAddressBookProvider.php',
170
-    'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => $baseDir . '/../lib/CardDAV/MultiGetExportPlugin.php',
171
-    'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir . '/../lib/CardDAV/PhotoCache.php',
172
-    'OCA\\DAV\\CardDAV\\Plugin' => $baseDir . '/../lib/CardDAV/Plugin.php',
173
-    'OCA\\DAV\\CardDAV\\Security\\CardDavRateLimitingPlugin' => $baseDir . '/../lib/CardDAV/Security/CardDavRateLimitingPlugin.php',
174
-    'OCA\\DAV\\CardDAV\\Sharing\\Backend' => $baseDir . '/../lib/CardDAV/Sharing/Backend.php',
175
-    'OCA\\DAV\\CardDAV\\Sharing\\Service' => $baseDir . '/../lib/CardDAV/Sharing/Service.php',
176
-    'OCA\\DAV\\CardDAV\\SyncService' => $baseDir . '/../lib/CardDAV/SyncService.php',
177
-    'OCA\\DAV\\CardDAV\\SystemAddressbook' => $baseDir . '/../lib/CardDAV/SystemAddressbook.php',
178
-    'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir . '/../lib/CardDAV/UserAddressBooks.php',
179
-    'OCA\\DAV\\CardDAV\\Validation\\CardDavValidatePlugin' => $baseDir . '/../lib/CardDAV/Validation/CardDavValidatePlugin.php',
180
-    'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir . '/../lib/CardDAV/Xml/Groups.php',
181
-    'OCA\\DAV\\Command\\ClearCalendarUnshares' => $baseDir . '/../lib/Command/ClearCalendarUnshares.php',
182
-    'OCA\\DAV\\Command\\ClearContactsPhotoCache' => $baseDir . '/../lib/Command/ClearContactsPhotoCache.php',
183
-    'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir . '/../lib/Command/CreateAddressBook.php',
184
-    'OCA\\DAV\\Command\\CreateCalendar' => $baseDir . '/../lib/Command/CreateCalendar.php',
185
-    'OCA\\DAV\\Command\\CreateSubscription' => $baseDir . '/../lib/Command/CreateSubscription.php',
186
-    'OCA\\DAV\\Command\\DeleteCalendar' => $baseDir . '/../lib/Command/DeleteCalendar.php',
187
-    'OCA\\DAV\\Command\\DeleteSubscription' => $baseDir . '/../lib/Command/DeleteSubscription.php',
188
-    'OCA\\DAV\\Command\\ExportCalendar' => $baseDir . '/../lib/Command/ExportCalendar.php',
189
-    'OCA\\DAV\\Command\\FixCalendarSyncCommand' => $baseDir . '/../lib/Command/FixCalendarSyncCommand.php',
190
-    'OCA\\DAV\\Command\\GetAbsenceCommand' => $baseDir . '/../lib/Command/GetAbsenceCommand.php',
191
-    'OCA\\DAV\\Command\\ImportCalendar' => $baseDir . '/../lib/Command/ImportCalendar.php',
192
-    'OCA\\DAV\\Command\\ListAddressbooks' => $baseDir . '/../lib/Command/ListAddressbooks.php',
193
-    'OCA\\DAV\\Command\\ListCalendarShares' => $baseDir . '/../lib/Command/ListCalendarShares.php',
194
-    'OCA\\DAV\\Command\\ListCalendars' => $baseDir . '/../lib/Command/ListCalendars.php',
195
-    'OCA\\DAV\\Command\\ListSubscriptions' => $baseDir . '/../lib/Command/ListSubscriptions.php',
196
-    'OCA\\DAV\\Command\\MoveCalendar' => $baseDir . '/../lib/Command/MoveCalendar.php',
197
-    'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir . '/../lib/Command/RemoveInvalidShares.php',
198
-    'OCA\\DAV\\Command\\RetentionCleanupCommand' => $baseDir . '/../lib/Command/RetentionCleanupCommand.php',
199
-    'OCA\\DAV\\Command\\SendEventReminders' => $baseDir . '/../lib/Command/SendEventReminders.php',
200
-    'OCA\\DAV\\Command\\SetAbsenceCommand' => $baseDir . '/../lib/Command/SetAbsenceCommand.php',
201
-    'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir . '/../lib/Command/SyncBirthdayCalendar.php',
202
-    'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir . '/../lib/Command/SyncSystemAddressBook.php',
203
-    'OCA\\DAV\\Comments\\CommentNode' => $baseDir . '/../lib/Comments/CommentNode.php',
204
-    'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir . '/../lib/Comments/CommentsPlugin.php',
205
-    'OCA\\DAV\\Comments\\EntityCollection' => $baseDir . '/../lib/Comments/EntityCollection.php',
206
-    'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir . '/../lib/Comments/EntityTypeCollection.php',
207
-    'OCA\\DAV\\Comments\\RootCollection' => $baseDir . '/../lib/Comments/RootCollection.php',
208
-    'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir . '/../lib/Connector/LegacyDAVACL.php',
209
-    'OCA\\DAV\\Connector\\LegacyPublicAuth' => $baseDir . '/../lib/Connector/LegacyPublicAuth.php',
210
-    'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
211
-    'OCA\\DAV\\Connector\\Sabre\\AppleQuirksPlugin' => $baseDir . '/../lib/Connector/Sabre/AppleQuirksPlugin.php',
212
-    'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir . '/../lib/Connector/Sabre/Auth.php',
213
-    'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir . '/../lib/Connector/Sabre/BearerAuth.php',
214
-    'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
215
-    'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir . '/../lib/Connector/Sabre/CachingTree.php',
216
-    'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir . '/../lib/Connector/Sabre/ChecksumList.php',
217
-    'OCA\\DAV\\Connector\\Sabre\\ChecksumUpdatePlugin' => $baseDir . '/../lib/Connector/Sabre/ChecksumUpdatePlugin.php',
218
-    'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
219
-    'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
220
-    'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir . '/../lib/Connector/Sabre/DavAclPlugin.php',
221
-    'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir . '/../lib/Connector/Sabre/Directory.php',
222
-    'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
223
-    'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
224
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\BadGateway' => $baseDir . '/../lib/Connector/Sabre/Exception/BadGateway.php',
225
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
226
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir . '/../lib/Connector/Sabre/Exception/FileLocked.php',
227
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/Forbidden.php',
228
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
229
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
230
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\TooManyRequests' => $baseDir . '/../lib/Connector/Sabre/Exception/TooManyRequests.php',
231
-    'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
232
-    'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
233
-    'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir . '/../lib/Connector/Sabre/File.php',
234
-    'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesPlugin.php',
235
-    'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesReportPlugin.php',
236
-    'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir . '/../lib/Connector/Sabre/LockPlugin.php',
237
-    'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir . '/../lib/Connector/Sabre/MaintenancePlugin.php',
238
-    'OCA\\DAV\\Connector\\Sabre\\MtimeSanitizer' => $baseDir . '/../lib/Connector/Sabre/MtimeSanitizer.php',
239
-    'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir . '/../lib/Connector/Sabre/Node.php',
240
-    'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir . '/../lib/Connector/Sabre/ObjectTree.php',
241
-    'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir . '/../lib/Connector/Sabre/Principal.php',
242
-    'OCA\\DAV\\Connector\\Sabre\\PropFindMonitorPlugin' => $baseDir . '/../lib/Connector/Sabre/PropFindMonitorPlugin.php',
243
-    'OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin' => $baseDir . '/../lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php',
244
-    'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => $baseDir . '/../lib/Connector/Sabre/PropfindCompressionPlugin.php',
245
-    'OCA\\DAV\\Connector\\Sabre\\PublicAuth' => $baseDir . '/../lib/Connector/Sabre/PublicAuth.php',
246
-    'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir . '/../lib/Connector/Sabre/QuotaPlugin.php',
247
-    'OCA\\DAV\\Connector\\Sabre\\RequestIdHeaderPlugin' => $baseDir . '/../lib/Connector/Sabre/RequestIdHeaderPlugin.php',
248
-    'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir . '/../lib/Connector/Sabre/Server.php',
249
-    'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir . '/../lib/Connector/Sabre/ServerFactory.php',
250
-    'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir . '/../lib/Connector/Sabre/ShareTypeList.php',
251
-    'OCA\\DAV\\Connector\\Sabre\\ShareeList' => $baseDir . '/../lib/Connector/Sabre/ShareeList.php',
252
-    'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir . '/../lib/Connector/Sabre/SharesPlugin.php',
253
-    'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir . '/../lib/Connector/Sabre/TagList.php',
254
-    'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir . '/../lib/Connector/Sabre/TagsPlugin.php',
255
-    'OCA\\DAV\\Connector\\Sabre\\ZipFolderPlugin' => $baseDir . '/../lib/Connector/Sabre/ZipFolderPlugin.php',
256
-    'OCA\\DAV\\Controller\\BirthdayCalendarController' => $baseDir . '/../lib/Controller/BirthdayCalendarController.php',
257
-    'OCA\\DAV\\Controller\\DirectController' => $baseDir . '/../lib/Controller/DirectController.php',
258
-    'OCA\\DAV\\Controller\\ExampleContentController' => $baseDir . '/../lib/Controller/ExampleContentController.php',
259
-    'OCA\\DAV\\Controller\\InvitationResponseController' => $baseDir . '/../lib/Controller/InvitationResponseController.php',
260
-    'OCA\\DAV\\Controller\\OutOfOfficeController' => $baseDir . '/../lib/Controller/OutOfOfficeController.php',
261
-    'OCA\\DAV\\Controller\\UpcomingEventsController' => $baseDir . '/../lib/Controller/UpcomingEventsController.php',
262
-    'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir . '/../lib/DAV/CustomPropertiesBackend.php',
263
-    'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir . '/../lib/DAV/GroupPrincipalBackend.php',
264
-    'OCA\\DAV\\DAV\\PublicAuth' => $baseDir . '/../lib/DAV/PublicAuth.php',
265
-    'OCA\\DAV\\DAV\\RemoteUserPrincipalBackend' => $baseDir . '/../lib/DAV/RemoteUserPrincipalBackend.php',
266
-    'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir . '/../lib/DAV/Sharing/Backend.php',
267
-    'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir . '/../lib/DAV/Sharing/IShareable.php',
268
-    'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir . '/../lib/DAV/Sharing/Plugin.php',
269
-    'OCA\\DAV\\DAV\\Sharing\\SharingMapper' => $baseDir . '/../lib/DAV/Sharing/SharingMapper.php',
270
-    'OCA\\DAV\\DAV\\Sharing\\SharingService' => $baseDir . '/../lib/DAV/Sharing/SharingService.php',
271
-    'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir . '/../lib/DAV/Sharing/Xml/Invite.php',
272
-    'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir . '/../lib/DAV/Sharing/Xml/ShareRequest.php',
273
-    'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir . '/../lib/DAV/SystemPrincipalBackend.php',
274
-    'OCA\\DAV\\DAV\\ViewOnlyPlugin' => $baseDir . '/../lib/DAV/ViewOnlyPlugin.php',
275
-    'OCA\\DAV\\Db\\Absence' => $baseDir . '/../lib/Db/Absence.php',
276
-    'OCA\\DAV\\Db\\AbsenceMapper' => $baseDir . '/../lib/Db/AbsenceMapper.php',
277
-    'OCA\\DAV\\Db\\Direct' => $baseDir . '/../lib/Db/Direct.php',
278
-    'OCA\\DAV\\Db\\DirectMapper' => $baseDir . '/../lib/Db/DirectMapper.php',
279
-    'OCA\\DAV\\Db\\Property' => $baseDir . '/../lib/Db/Property.php',
280
-    'OCA\\DAV\\Db\\PropertyMapper' => $baseDir . '/../lib/Db/PropertyMapper.php',
281
-    'OCA\\DAV\\Direct\\DirectFile' => $baseDir . '/../lib/Direct/DirectFile.php',
282
-    'OCA\\DAV\\Direct\\DirectHome' => $baseDir . '/../lib/Direct/DirectHome.php',
283
-    'OCA\\DAV\\Direct\\Server' => $baseDir . '/../lib/Direct/Server.php',
284
-    'OCA\\DAV\\Direct\\ServerFactory' => $baseDir . '/../lib/Direct/ServerFactory.php',
285
-    'OCA\\DAV\\Events\\AddressBookCreatedEvent' => $baseDir . '/../lib/Events/AddressBookCreatedEvent.php',
286
-    'OCA\\DAV\\Events\\AddressBookDeletedEvent' => $baseDir . '/../lib/Events/AddressBookDeletedEvent.php',
287
-    'OCA\\DAV\\Events\\AddressBookShareUpdatedEvent' => $baseDir . '/../lib/Events/AddressBookShareUpdatedEvent.php',
288
-    'OCA\\DAV\\Events\\AddressBookUpdatedEvent' => $baseDir . '/../lib/Events/AddressBookUpdatedEvent.php',
289
-    'OCA\\DAV\\Events\\BeforeFileDirectDownloadedEvent' => $baseDir . '/../lib/Events/BeforeFileDirectDownloadedEvent.php',
290
-    'OCA\\DAV\\Events\\CachedCalendarObjectCreatedEvent' => $baseDir . '/../lib/Events/CachedCalendarObjectCreatedEvent.php',
291
-    'OCA\\DAV\\Events\\CachedCalendarObjectDeletedEvent' => $baseDir . '/../lib/Events/CachedCalendarObjectDeletedEvent.php',
292
-    'OCA\\DAV\\Events\\CachedCalendarObjectUpdatedEvent' => $baseDir . '/../lib/Events/CachedCalendarObjectUpdatedEvent.php',
293
-    'OCA\\DAV\\Events\\CalendarCreatedEvent' => $baseDir . '/../lib/Events/CalendarCreatedEvent.php',
294
-    'OCA\\DAV\\Events\\CalendarDeletedEvent' => $baseDir . '/../lib/Events/CalendarDeletedEvent.php',
295
-    'OCA\\DAV\\Events\\CalendarMovedToTrashEvent' => $baseDir . '/../lib/Events/CalendarMovedToTrashEvent.php',
296
-    'OCA\\DAV\\Events\\CalendarPublishedEvent' => $baseDir . '/../lib/Events/CalendarPublishedEvent.php',
297
-    'OCA\\DAV\\Events\\CalendarRestoredEvent' => $baseDir . '/../lib/Events/CalendarRestoredEvent.php',
298
-    'OCA\\DAV\\Events\\CalendarShareUpdatedEvent' => $baseDir . '/../lib/Events/CalendarShareUpdatedEvent.php',
299
-    'OCA\\DAV\\Events\\CalendarUnpublishedEvent' => $baseDir . '/../lib/Events/CalendarUnpublishedEvent.php',
300
-    'OCA\\DAV\\Events\\CalendarUpdatedEvent' => $baseDir . '/../lib/Events/CalendarUpdatedEvent.php',
301
-    'OCA\\DAV\\Events\\CardCreatedEvent' => $baseDir . '/../lib/Events/CardCreatedEvent.php',
302
-    'OCA\\DAV\\Events\\CardDeletedEvent' => $baseDir . '/../lib/Events/CardDeletedEvent.php',
303
-    'OCA\\DAV\\Events\\CardMovedEvent' => $baseDir . '/../lib/Events/CardMovedEvent.php',
304
-    'OCA\\DAV\\Events\\CardUpdatedEvent' => $baseDir . '/../lib/Events/CardUpdatedEvent.php',
305
-    'OCA\\DAV\\Events\\SabrePluginAddEvent' => $baseDir . '/../lib/Events/SabrePluginAddEvent.php',
306
-    'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => $baseDir . '/../lib/Events/SabrePluginAuthInitEvent.php',
307
-    'OCA\\DAV\\Events\\SubscriptionCreatedEvent' => $baseDir . '/../lib/Events/SubscriptionCreatedEvent.php',
308
-    'OCA\\DAV\\Events\\SubscriptionDeletedEvent' => $baseDir . '/../lib/Events/SubscriptionDeletedEvent.php',
309
-    'OCA\\DAV\\Events\\SubscriptionUpdatedEvent' => $baseDir . '/../lib/Events/SubscriptionUpdatedEvent.php',
310
-    'OCA\\DAV\\Exception\\ExampleEventException' => $baseDir . '/../lib/Exception/ExampleEventException.php',
311
-    'OCA\\DAV\\Exception\\ServerMaintenanceMode' => $baseDir . '/../lib/Exception/ServerMaintenanceMode.php',
312
-    'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => $baseDir . '/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
313
-    'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir . '/../lib/Files/BrowserErrorPagePlugin.php',
314
-    'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir . '/../lib/Files/FileSearchBackend.php',
315
-    'OCA\\DAV\\Files\\FilesHome' => $baseDir . '/../lib/Files/FilesHome.php',
316
-    'OCA\\DAV\\Files\\LazySearchBackend' => $baseDir . '/../lib/Files/LazySearchBackend.php',
317
-    'OCA\\DAV\\Files\\RootCollection' => $baseDir . '/../lib/Files/RootCollection.php',
318
-    'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir . '/../lib/Files/Sharing/FilesDropPlugin.php',
319
-    'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
320
-    'OCA\\DAV\\Files\\Sharing\\RootCollection' => $baseDir . '/../lib/Files/Sharing/RootCollection.php',
321
-    'OCA\\DAV\\Listener\\ActivityUpdaterListener' => $baseDir . '/../lib/Listener/ActivityUpdaterListener.php',
322
-    'OCA\\DAV\\Listener\\AddMissingIndicesListener' => $baseDir . '/../lib/Listener/AddMissingIndicesListener.php',
323
-    'OCA\\DAV\\Listener\\AddressbookListener' => $baseDir . '/../lib/Listener/AddressbookListener.php',
324
-    'OCA\\DAV\\Listener\\BirthdayListener' => $baseDir . '/../lib/Listener/BirthdayListener.php',
325
-    'OCA\\DAV\\Listener\\CalendarContactInteractionListener' => $baseDir . '/../lib/Listener/CalendarContactInteractionListener.php',
326
-    'OCA\\DAV\\Listener\\CalendarDeletionDefaultUpdaterListener' => $baseDir . '/../lib/Listener/CalendarDeletionDefaultUpdaterListener.php',
327
-    'OCA\\DAV\\Listener\\CalendarFederationNotificationListener' => $baseDir . '/../lib/Listener/CalendarFederationNotificationListener.php',
328
-    'OCA\\DAV\\Listener\\CalendarObjectReminderUpdaterListener' => $baseDir . '/../lib/Listener/CalendarObjectReminderUpdaterListener.php',
329
-    'OCA\\DAV\\Listener\\CalendarPublicationListener' => $baseDir . '/../lib/Listener/CalendarPublicationListener.php',
330
-    'OCA\\DAV\\Listener\\CalendarShareUpdateListener' => $baseDir . '/../lib/Listener/CalendarShareUpdateListener.php',
331
-    'OCA\\DAV\\Listener\\CardListener' => $baseDir . '/../lib/Listener/CardListener.php',
332
-    'OCA\\DAV\\Listener\\ClearPhotoCacheListener' => $baseDir . '/../lib/Listener/ClearPhotoCacheListener.php',
333
-    'OCA\\DAV\\Listener\\DavAdminSettingsListener' => $baseDir . '/../lib/Listener/DavAdminSettingsListener.php',
334
-    'OCA\\DAV\\Listener\\OutOfOfficeListener' => $baseDir . '/../lib/Listener/OutOfOfficeListener.php',
335
-    'OCA\\DAV\\Listener\\SabrePluginAuthInitListener' => $baseDir . '/../lib/Listener/SabrePluginAuthInitListener.php',
336
-    'OCA\\DAV\\Listener\\SubscriptionListener' => $baseDir . '/../lib/Listener/SubscriptionListener.php',
337
-    'OCA\\DAV\\Listener\\TrustedServerRemovedListener' => $baseDir . '/../lib/Listener/TrustedServerRemovedListener.php',
338
-    'OCA\\DAV\\Listener\\UserEventsListener' => $baseDir . '/../lib/Listener/UserEventsListener.php',
339
-    'OCA\\DAV\\Listener\\UserPreferenceListener' => $baseDir . '/../lib/Listener/UserPreferenceListener.php',
340
-    'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndex.php',
341
-    'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
342
-    'OCA\\DAV\\Migration\\BuildSocialSearchIndex' => $baseDir . '/../lib/Migration/BuildSocialSearchIndex.php',
343
-    'OCA\\DAV\\Migration\\BuildSocialSearchIndexBackgroundJob' => $baseDir . '/../lib/Migration/BuildSocialSearchIndexBackgroundJob.php',
344
-    'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir . '/../lib/Migration/CalDAVRemoveEmptyValue.php',
345
-    'OCA\\DAV\\Migration\\ChunkCleanup' => $baseDir . '/../lib/Migration/ChunkCleanup.php',
346
-    'OCA\\DAV\\Migration\\CreateSystemAddressBookStep' => $baseDir . '/../lib/Migration/CreateSystemAddressBookStep.php',
347
-    'OCA\\DAV\\Migration\\DeleteSchedulingObjects' => $baseDir . '/../lib/Migration/DeleteSchedulingObjects.php',
348
-    'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir . '/../lib/Migration/FixBirthdayCalendarComponent.php',
349
-    'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => $baseDir . '/../lib/Migration/RefreshWebcalJobRegistrar.php',
350
-    'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => $baseDir . '/../lib/Migration/RegenerateBirthdayCalendars.php',
351
-    'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => $baseDir . '/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
352
-    'OCA\\DAV\\Migration\\RegisterUpdateCalendarResourcesRoomBackgroundJob' => $baseDir . '/../lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php',
353
-    'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => $baseDir . '/../lib/Migration/RemoveClassifiedEventActivity.php',
354
-    'OCA\\DAV\\Migration\\RemoveDeletedUsersCalendarSubscriptions' => $baseDir . '/../lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php',
355
-    'OCA\\DAV\\Migration\\RemoveObjectProperties' => $baseDir . '/../lib/Migration/RemoveObjectProperties.php',
356
-    'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => $baseDir . '/../lib/Migration/RemoveOrphanEventsAndContacts.php',
357
-    'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir . '/../lib/Migration/Version1004Date20170825134824.php',
358
-    'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir . '/../lib/Migration/Version1004Date20170919104507.php',
359
-    'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir . '/../lib/Migration/Version1004Date20170924124212.php',
360
-    'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir . '/../lib/Migration/Version1004Date20170926103422.php',
361
-    'OCA\\DAV\\Migration\\Version1005Date20180413093149' => $baseDir . '/../lib/Migration/Version1005Date20180413093149.php',
362
-    'OCA\\DAV\\Migration\\Version1005Date20180530124431' => $baseDir . '/../lib/Migration/Version1005Date20180530124431.php',
363
-    'OCA\\DAV\\Migration\\Version1006Date20180619154313' => $baseDir . '/../lib/Migration/Version1006Date20180619154313.php',
364
-    'OCA\\DAV\\Migration\\Version1006Date20180628111625' => $baseDir . '/../lib/Migration/Version1006Date20180628111625.php',
365
-    'OCA\\DAV\\Migration\\Version1008Date20181030113700' => $baseDir . '/../lib/Migration/Version1008Date20181030113700.php',
366
-    'OCA\\DAV\\Migration\\Version1008Date20181105104826' => $baseDir . '/../lib/Migration/Version1008Date20181105104826.php',
367
-    'OCA\\DAV\\Migration\\Version1008Date20181105104833' => $baseDir . '/../lib/Migration/Version1008Date20181105104833.php',
368
-    'OCA\\DAV\\Migration\\Version1008Date20181105110300' => $baseDir . '/../lib/Migration/Version1008Date20181105110300.php',
369
-    'OCA\\DAV\\Migration\\Version1008Date20181105112049' => $baseDir . '/../lib/Migration/Version1008Date20181105112049.php',
370
-    'OCA\\DAV\\Migration\\Version1008Date20181114084440' => $baseDir . '/../lib/Migration/Version1008Date20181114084440.php',
371
-    'OCA\\DAV\\Migration\\Version1011Date20190725113607' => $baseDir . '/../lib/Migration/Version1011Date20190725113607.php',
372
-    'OCA\\DAV\\Migration\\Version1011Date20190806104428' => $baseDir . '/../lib/Migration/Version1011Date20190806104428.php',
373
-    'OCA\\DAV\\Migration\\Version1012Date20190808122342' => $baseDir . '/../lib/Migration/Version1012Date20190808122342.php',
374
-    'OCA\\DAV\\Migration\\Version1016Date20201109085907' => $baseDir . '/../lib/Migration/Version1016Date20201109085907.php',
375
-    'OCA\\DAV\\Migration\\Version1017Date20210216083742' => $baseDir . '/../lib/Migration/Version1017Date20210216083742.php',
376
-    'OCA\\DAV\\Migration\\Version1018Date20210312100735' => $baseDir . '/../lib/Migration/Version1018Date20210312100735.php',
377
-    'OCA\\DAV\\Migration\\Version1024Date20211221144219' => $baseDir . '/../lib/Migration/Version1024Date20211221144219.php',
378
-    'OCA\\DAV\\Migration\\Version1025Date20240308063933' => $baseDir . '/../lib/Migration/Version1025Date20240308063933.php',
379
-    'OCA\\DAV\\Migration\\Version1027Date20230504122946' => $baseDir . '/../lib/Migration/Version1027Date20230504122946.php',
380
-    'OCA\\DAV\\Migration\\Version1029Date20221114151721' => $baseDir . '/../lib/Migration/Version1029Date20221114151721.php',
381
-    'OCA\\DAV\\Migration\\Version1029Date20231004091403' => $baseDir . '/../lib/Migration/Version1029Date20231004091403.php',
382
-    'OCA\\DAV\\Migration\\Version1030Date20240205103243' => $baseDir . '/../lib/Migration/Version1030Date20240205103243.php',
383
-    'OCA\\DAV\\Migration\\Version1031Date20240610134258' => $baseDir . '/../lib/Migration/Version1031Date20240610134258.php',
384
-    'OCA\\DAV\\Migration\\Version1034Date20250605132605' => $baseDir . '/../lib/Migration/Version1034Date20250605132605.php',
385
-    'OCA\\DAV\\Migration\\Version1034Date20250813093701' => $baseDir . '/../lib/Migration/Version1034Date20250813093701.php',
386
-    'OCA\\DAV\\Model\\ExampleEvent' => $baseDir . '/../lib/Model/ExampleEvent.php',
387
-    'OCA\\DAV\\Paginate\\LimitedCopyIterator' => $baseDir . '/../lib/Paginate/LimitedCopyIterator.php',
388
-    'OCA\\DAV\\Paginate\\PaginateCache' => $baseDir . '/../lib/Paginate/PaginateCache.php',
389
-    'OCA\\DAV\\Paginate\\PaginatePlugin' => $baseDir . '/../lib/Paginate/PaginatePlugin.php',
390
-    'OCA\\DAV\\Profiler\\ProfilerPlugin' => $baseDir . '/../lib/Profiler/ProfilerPlugin.php',
391
-    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningNode.php',
392
-    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => $baseDir . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
393
-    'OCA\\DAV\\ResponseDefinitions' => $baseDir . '/../lib/ResponseDefinitions.php',
394
-    'OCA\\DAV\\RootCollection' => $baseDir . '/../lib/RootCollection.php',
395
-    'OCA\\DAV\\Search\\ACalendarSearchProvider' => $baseDir . '/../lib/Search/ACalendarSearchProvider.php',
396
-    'OCA\\DAV\\Search\\ContactsSearchProvider' => $baseDir . '/../lib/Search/ContactsSearchProvider.php',
397
-    'OCA\\DAV\\Search\\EventsSearchProvider' => $baseDir . '/../lib/Search/EventsSearchProvider.php',
398
-    'OCA\\DAV\\Search\\TasksSearchProvider' => $baseDir . '/../lib/Search/TasksSearchProvider.php',
399
-    'OCA\\DAV\\Server' => $baseDir . '/../lib/Server.php',
400
-    'OCA\\DAV\\ServerFactory' => $baseDir . '/../lib/ServerFactory.php',
401
-    'OCA\\DAV\\Service\\ASyncService' => $baseDir . '/../lib/Service/ASyncService.php',
402
-    'OCA\\DAV\\Service\\AbsenceService' => $baseDir . '/../lib/Service/AbsenceService.php',
403
-    'OCA\\DAV\\Service\\ExampleContactService' => $baseDir . '/../lib/Service/ExampleContactService.php',
404
-    'OCA\\DAV\\Service\\ExampleEventService' => $baseDir . '/../lib/Service/ExampleEventService.php',
405
-    'OCA\\DAV\\Settings\\Admin\\SystemAddressBookSettings' => $baseDir . '/../lib/Settings/Admin/SystemAddressBookSettings.php',
406
-    'OCA\\DAV\\Settings\\AvailabilitySettings' => $baseDir . '/../lib/Settings/AvailabilitySettings.php',
407
-    'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir . '/../lib/Settings/CalDAVSettings.php',
408
-    'OCA\\DAV\\Settings\\ExampleContentSettings' => $baseDir . '/../lib/Settings/ExampleContentSettings.php',
409
-    'OCA\\DAV\\SetupChecks\\NeedsSystemAddressBookSync' => $baseDir . '/../lib/SetupChecks/NeedsSystemAddressBookSync.php',
410
-    'OCA\\DAV\\SetupChecks\\WebdavEndpoint' => $baseDir . '/../lib/SetupChecks/WebdavEndpoint.php',
411
-    'OCA\\DAV\\Storage\\PublicOwnerWrapper' => $baseDir . '/../lib/Storage/PublicOwnerWrapper.php',
412
-    'OCA\\DAV\\Storage\\PublicShareWrapper' => $baseDir . '/../lib/Storage/PublicShareWrapper.php',
413
-    'OCA\\DAV\\SystemTag\\SystemTagList' => $baseDir . '/../lib/SystemTag/SystemTagList.php',
414
-    'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir . '/../lib/SystemTag/SystemTagMappingNode.php',
415
-    'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir . '/../lib/SystemTag/SystemTagNode.php',
416
-    'OCA\\DAV\\SystemTag\\SystemTagObjectType' => $baseDir . '/../lib/SystemTag/SystemTagObjectType.php',
417
-    'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir . '/../lib/SystemTag/SystemTagPlugin.php',
418
-    'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir . '/../lib/SystemTag/SystemTagsByIdCollection.php',
419
-    'OCA\\DAV\\SystemTag\\SystemTagsInUseCollection' => $baseDir . '/../lib/SystemTag/SystemTagsInUseCollection.php',
420
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectList' => $baseDir . '/../lib/SystemTag/SystemTagsObjectList.php',
421
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
422
-    'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
423
-    'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
424
-    'OCA\\DAV\\Traits\\PrincipalProxyTrait' => $baseDir . '/../lib/Traits/PrincipalProxyTrait.php',
425
-    'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir . '/../lib/Upload/AssemblyStream.php',
426
-    'OCA\\DAV\\Upload\\ChunkingPlugin' => $baseDir . '/../lib/Upload/ChunkingPlugin.php',
427
-    'OCA\\DAV\\Upload\\ChunkingV2Plugin' => $baseDir . '/../lib/Upload/ChunkingV2Plugin.php',
428
-    'OCA\\DAV\\Upload\\CleanupService' => $baseDir . '/../lib/Upload/CleanupService.php',
429
-    'OCA\\DAV\\Upload\\FutureFile' => $baseDir . '/../lib/Upload/FutureFile.php',
430
-    'OCA\\DAV\\Upload\\PartFile' => $baseDir . '/../lib/Upload/PartFile.php',
431
-    'OCA\\DAV\\Upload\\RootCollection' => $baseDir . '/../lib/Upload/RootCollection.php',
432
-    'OCA\\DAV\\Upload\\UploadAutoMkcolPlugin' => $baseDir . '/../lib/Upload/UploadAutoMkcolPlugin.php',
433
-    'OCA\\DAV\\Upload\\UploadFile' => $baseDir . '/../lib/Upload/UploadFile.php',
434
-    'OCA\\DAV\\Upload\\UploadFolder' => $baseDir . '/../lib/Upload/UploadFolder.php',
435
-    'OCA\\DAV\\Upload\\UploadHome' => $baseDir . '/../lib/Upload/UploadHome.php',
436
-    'OCA\\DAV\\UserMigration\\CalendarMigrator' => $baseDir . '/../lib/UserMigration/CalendarMigrator.php',
437
-    'OCA\\DAV\\UserMigration\\CalendarMigratorException' => $baseDir . '/../lib/UserMigration/CalendarMigratorException.php',
438
-    'OCA\\DAV\\UserMigration\\ContactsMigrator' => $baseDir . '/../lib/UserMigration/ContactsMigrator.php',
439
-    'OCA\\DAV\\UserMigration\\ContactsMigratorException' => $baseDir . '/../lib/UserMigration/ContactsMigratorException.php',
440
-    'OCA\\DAV\\UserMigration\\InvalidAddressBookException' => $baseDir . '/../lib/UserMigration/InvalidAddressBookException.php',
441
-    'OCA\\DAV\\UserMigration\\InvalidCalendarException' => $baseDir . '/../lib/UserMigration/InvalidCalendarException.php',
9
+    'Composer\\InstalledVersions' => $vendorDir.'/composer/InstalledVersions.php',
10
+    'OCA\\DAV\\AppInfo\\Application' => $baseDir.'/../lib/AppInfo/Application.php',
11
+    'OCA\\DAV\\AppInfo\\PluginManager' => $baseDir.'/../lib/AppInfo/PluginManager.php',
12
+    'OCA\\DAV\\Avatars\\AvatarHome' => $baseDir.'/../lib/Avatars/AvatarHome.php',
13
+    'OCA\\DAV\\Avatars\\AvatarNode' => $baseDir.'/../lib/Avatars/AvatarNode.php',
14
+    'OCA\\DAV\\Avatars\\RootCollection' => $baseDir.'/../lib/Avatars/RootCollection.php',
15
+    'OCA\\DAV\\BackgroundJob\\BuildReminderIndexBackgroundJob' => $baseDir.'/../lib/BackgroundJob/BuildReminderIndexBackgroundJob.php',
16
+    'OCA\\DAV\\BackgroundJob\\CalendarRetentionJob' => $baseDir.'/../lib/BackgroundJob/CalendarRetentionJob.php',
17
+    'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => $baseDir.'/../lib/BackgroundJob/CleanupDirectLinksJob.php',
18
+    'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => $baseDir.'/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
19
+    'OCA\\DAV\\BackgroundJob\\CleanupOrphanedChildrenJob' => $baseDir.'/../lib/BackgroundJob/CleanupOrphanedChildrenJob.php',
20
+    'OCA\\DAV\\BackgroundJob\\DeleteOutdatedSchedulingObjects' => $baseDir.'/../lib/BackgroundJob/DeleteOutdatedSchedulingObjects.php',
21
+    'OCA\\DAV\\BackgroundJob\\EventReminderJob' => $baseDir.'/../lib/BackgroundJob/EventReminderJob.php',
22
+    'OCA\\DAV\\BackgroundJob\\FederatedCalendarPeriodicSyncJob' => $baseDir.'/../lib/BackgroundJob/FederatedCalendarPeriodicSyncJob.php',
23
+    'OCA\\DAV\\BackgroundJob\\FederatedCalendarSyncJob' => $baseDir.'/../lib/BackgroundJob/FederatedCalendarSyncJob.php',
24
+    'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => $baseDir.'/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
25
+    'OCA\\DAV\\BackgroundJob\\OutOfOfficeEventDispatcherJob' => $baseDir.'/../lib/BackgroundJob/OutOfOfficeEventDispatcherJob.php',
26
+    'OCA\\DAV\\BackgroundJob\\PruneOutdatedSyncTokensJob' => $baseDir.'/../lib/BackgroundJob/PruneOutdatedSyncTokensJob.php',
27
+    'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => $baseDir.'/../lib/BackgroundJob/RefreshWebcalJob.php',
28
+    'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => $baseDir.'/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
29
+    'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => $baseDir.'/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
30
+    'OCA\\DAV\\BackgroundJob\\UploadCleanup' => $baseDir.'/../lib/BackgroundJob/UploadCleanup.php',
31
+    'OCA\\DAV\\BackgroundJob\\UserStatusAutomation' => $baseDir.'/../lib/BackgroundJob/UserStatusAutomation.php',
32
+    'OCA\\DAV\\BulkUpload\\BulkUploadPlugin' => $baseDir.'/../lib/BulkUpload/BulkUploadPlugin.php',
33
+    'OCA\\DAV\\BulkUpload\\MultipartRequestParser' => $baseDir.'/../lib/BulkUpload/MultipartRequestParser.php',
34
+    'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir.'/../lib/CalDAV/Activity/Backend.php',
35
+    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Filter/Calendar.php',
36
+    'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Filter/Todo.php',
37
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir.'/../lib/CalDAV/Activity/Provider/Base.php',
38
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Provider/Calendar.php',
39
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir.'/../lib/CalDAV/Activity/Provider/Event.php',
40
+    'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Provider/Todo.php',
41
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\CalDAVSetting' => $baseDir.'/../lib/CalDAV/Activity/Setting/CalDAVSetting.php',
42
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir.'/../lib/CalDAV/Activity/Setting/Calendar.php',
43
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir.'/../lib/CalDAV/Activity/Setting/Event.php',
44
+    'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir.'/../lib/CalDAV/Activity/Setting/Todo.php',
45
+    'OCA\\DAV\\CalDAV\\AppCalendar\\AppCalendar' => $baseDir.'/../lib/CalDAV/AppCalendar/AppCalendar.php',
46
+    'OCA\\DAV\\CalDAV\\AppCalendar\\AppCalendarPlugin' => $baseDir.'/../lib/CalDAV/AppCalendar/AppCalendarPlugin.php',
47
+    'OCA\\DAV\\CalDAV\\AppCalendar\\CalendarObject' => $baseDir.'/../lib/CalDAV/AppCalendar/CalendarObject.php',
48
+    'OCA\\DAV\\CalDAV\\Auth\\CustomPrincipalPlugin' => $baseDir.'/../lib/CalDAV/Auth/CustomPrincipalPlugin.php',
49
+    'OCA\\DAV\\CalDAV\\Auth\\PublicPrincipalPlugin' => $baseDir.'/../lib/CalDAV/Auth/PublicPrincipalPlugin.php',
50
+    'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => $baseDir.'/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
51
+    'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir.'/../lib/CalDAV/BirthdayService.php',
52
+    'OCA\\DAV\\CalDAV\\CachedSubscription' => $baseDir.'/../lib/CalDAV/CachedSubscription.php',
53
+    'OCA\\DAV\\CalDAV\\CachedSubscriptionImpl' => $baseDir.'/../lib/CalDAV/CachedSubscriptionImpl.php',
54
+    'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => $baseDir.'/../lib/CalDAV/CachedSubscriptionObject.php',
55
+    'OCA\\DAV\\CalDAV\\CachedSubscriptionProvider' => $baseDir.'/../lib/CalDAV/CachedSubscriptionProvider.php',
56
+    'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir.'/../lib/CalDAV/CalDavBackend.php',
57
+    'OCA\\DAV\\CalDAV\\Calendar' => $baseDir.'/../lib/CalDAV/Calendar.php',
58
+    'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir.'/../lib/CalDAV/CalendarHome.php',
59
+    'OCA\\DAV\\CalDAV\\CalendarImpl' => $baseDir.'/../lib/CalDAV/CalendarImpl.php',
60
+    'OCA\\DAV\\CalDAV\\CalendarManager' => $baseDir.'/../lib/CalDAV/CalendarManager.php',
61
+    'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir.'/../lib/CalDAV/CalendarObject.php',
62
+    'OCA\\DAV\\CalDAV\\CalendarProvider' => $baseDir.'/../lib/CalDAV/CalendarProvider.php',
63
+    'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir.'/../lib/CalDAV/CalendarRoot.php',
64
+    'OCA\\DAV\\CalDAV\\DefaultCalendarValidator' => $baseDir.'/../lib/CalDAV/DefaultCalendarValidator.php',
65
+    'OCA\\DAV\\CalDAV\\EmbeddedCalDavServer' => $baseDir.'/../lib/CalDAV/EmbeddedCalDavServer.php',
66
+    'OCA\\DAV\\CalDAV\\EventComparisonService' => $baseDir.'/../lib/CalDAV/EventComparisonService.php',
67
+    'OCA\\DAV\\CalDAV\\EventReader' => $baseDir.'/../lib/CalDAV/EventReader.php',
68
+    'OCA\\DAV\\CalDAV\\EventReaderRDate' => $baseDir.'/../lib/CalDAV/EventReaderRDate.php',
69
+    'OCA\\DAV\\CalDAV\\EventReaderRRule' => $baseDir.'/../lib/CalDAV/EventReaderRRule.php',
70
+    'OCA\\DAV\\CalDAV\\Export\\ExportService' => $baseDir.'/../lib/CalDAV/Export/ExportService.php',
71
+    'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationConfig' => $baseDir.'/../lib/CalDAV/Federation/CalendarFederationConfig.php',
72
+    'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationNotifier' => $baseDir.'/../lib/CalDAV/Federation/CalendarFederationNotifier.php',
73
+    'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationProvider' => $baseDir.'/../lib/CalDAV/Federation/CalendarFederationProvider.php',
74
+    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendar' => $baseDir.'/../lib/CalDAV/Federation/FederatedCalendar.php',
75
+    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarAuth' => $baseDir.'/../lib/CalDAV/Federation/FederatedCalendarAuth.php',
76
+    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarEntity' => $baseDir.'/../lib/CalDAV/Federation/FederatedCalendarEntity.php',
77
+    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarFactory' => $baseDir.'/../lib/CalDAV/Federation/FederatedCalendarFactory.php',
78
+    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarImpl' => $baseDir.'/../lib/CalDAV/Federation/FederatedCalendarImpl.php',
79
+    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarMapper' => $baseDir.'/../lib/CalDAV/Federation/FederatedCalendarMapper.php',
80
+    'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarSyncService' => $baseDir.'/../lib/CalDAV/Federation/FederatedCalendarSyncService.php',
81
+    'OCA\\DAV\\CalDAV\\Federation\\FederationSharingService' => $baseDir.'/../lib/CalDAV/Federation/FederationSharingService.php',
82
+    'OCA\\DAV\\CalDAV\\Federation\\Protocol\\CalendarFederationProtocolV1' => $baseDir.'/../lib/CalDAV/Federation/Protocol/CalendarFederationProtocolV1.php',
83
+    'OCA\\DAV\\CalDAV\\Federation\\Protocol\\CalendarProtocolParseException' => $baseDir.'/../lib/CalDAV/Federation/Protocol/CalendarProtocolParseException.php',
84
+    'OCA\\DAV\\CalDAV\\Federation\\Protocol\\ICalendarFederationProtocol' => $baseDir.'/../lib/CalDAV/Federation/Protocol/ICalendarFederationProtocol.php',
85
+    'OCA\\DAV\\CalDAV\\Federation\\RemoteUserCalendarHome' => $baseDir.'/../lib/CalDAV/Federation/RemoteUserCalendarHome.php',
86
+    'OCA\\DAV\\CalDAV\\FreeBusy\\FreeBusyGenerator' => $baseDir.'/../lib/CalDAV/FreeBusy/FreeBusyGenerator.php',
87
+    'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => $baseDir.'/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
88
+    'OCA\\DAV\\CalDAV\\IRestorable' => $baseDir.'/../lib/CalDAV/IRestorable.php',
89
+    'OCA\\DAV\\CalDAV\\Import\\ImportService' => $baseDir.'/../lib/CalDAV/Import/ImportService.php',
90
+    'OCA\\DAV\\CalDAV\\Import\\TextImporter' => $baseDir.'/../lib/CalDAV/Import/TextImporter.php',
91
+    'OCA\\DAV\\CalDAV\\Import\\XmlImporter' => $baseDir.'/../lib/CalDAV/Import/XmlImporter.php',
92
+    'OCA\\DAV\\CalDAV\\Integration\\ExternalCalendar' => $baseDir.'/../lib/CalDAV/Integration/ExternalCalendar.php',
93
+    'OCA\\DAV\\CalDAV\\Integration\\ICalendarProvider' => $baseDir.'/../lib/CalDAV/Integration/ICalendarProvider.php',
94
+    'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => $baseDir.'/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
95
+    'OCA\\DAV\\CalDAV\\Outbox' => $baseDir.'/../lib/CalDAV/Outbox.php',
96
+    'OCA\\DAV\\CalDAV\\Plugin' => $baseDir.'/../lib/CalDAV/Plugin.php',
97
+    'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir.'/../lib/CalDAV/Principal/Collection.php',
98
+    'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir.'/../lib/CalDAV/Principal/User.php',
99
+    'OCA\\DAV\\CalDAV\\Proxy\\Proxy' => $baseDir.'/../lib/CalDAV/Proxy/Proxy.php',
100
+    'OCA\\DAV\\CalDAV\\Proxy\\ProxyMapper' => $baseDir.'/../lib/CalDAV/Proxy/ProxyMapper.php',
101
+    'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir.'/../lib/CalDAV/PublicCalendar.php',
102
+    'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir.'/../lib/CalDAV/PublicCalendarObject.php',
103
+    'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir.'/../lib/CalDAV/PublicCalendarRoot.php',
104
+    'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir.'/../lib/CalDAV/Publishing/PublishPlugin.php',
105
+    'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir.'/../lib/CalDAV/Publishing/Xml/Publisher.php',
106
+    'OCA\\DAV\\CalDAV\\Reminder\\Backend' => $baseDir.'/../lib/CalDAV/Reminder/Backend.php',
107
+    'OCA\\DAV\\CalDAV\\Reminder\\INotificationProvider' => $baseDir.'/../lib/CalDAV/Reminder/INotificationProvider.php',
108
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProviderManager' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProviderManager.php',
109
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AbstractProvider' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php',
110
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AudioProvider' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/AudioProvider.php',
111
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\EmailProvider' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php',
112
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\ProviderNotAvailableException' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/ProviderNotAvailableException.php',
113
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\PushProvider' => $baseDir.'/../lib/CalDAV/Reminder/NotificationProvider/PushProvider.php',
114
+    'OCA\\DAV\\CalDAV\\Reminder\\NotificationTypeDoesNotExistException' => $baseDir.'/../lib/CalDAV/Reminder/NotificationTypeDoesNotExistException.php',
115
+    'OCA\\DAV\\CalDAV\\Reminder\\Notifier' => $baseDir.'/../lib/CalDAV/Reminder/Notifier.php',
116
+    'OCA\\DAV\\CalDAV\\Reminder\\ReminderService' => $baseDir.'/../lib/CalDAV/Reminder/ReminderService.php',
117
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
118
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
119
+    'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => $baseDir.'/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
120
+    'OCA\\DAV\\CalDAV\\RetentionService' => $baseDir.'/../lib/CalDAV/RetentionService.php',
121
+    'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir.'/../lib/CalDAV/Schedule/IMipPlugin.php',
122
+    'OCA\\DAV\\CalDAV\\Schedule\\IMipService' => $baseDir.'/../lib/CalDAV/Schedule/IMipService.php',
123
+    'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir.'/../lib/CalDAV/Schedule/Plugin.php',
124
+    'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir.'/../lib/CalDAV/Search/SearchPlugin.php',
125
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
126
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
127
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
128
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
129
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
130
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir.'/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
131
+    'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir.'/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
132
+    'OCA\\DAV\\CalDAV\\Security\\RateLimitingPlugin' => $baseDir.'/../lib/CalDAV/Security/RateLimitingPlugin.php',
133
+    'OCA\\DAV\\CalDAV\\Sharing\\Backend' => $baseDir.'/../lib/CalDAV/Sharing/Backend.php',
134
+    'OCA\\DAV\\CalDAV\\Sharing\\Service' => $baseDir.'/../lib/CalDAV/Sharing/Service.php',
135
+    'OCA\\DAV\\CalDAV\\Status\\StatusService' => $baseDir.'/../lib/CalDAV/Status/StatusService.php',
136
+    'OCA\\DAV\\CalDAV\\SyncService' => $baseDir.'/../lib/CalDAV/SyncService.php',
137
+    'OCA\\DAV\\CalDAV\\SyncServiceResult' => $baseDir.'/../lib/CalDAV/SyncServiceResult.php',
138
+    'OCA\\DAV\\CalDAV\\TimeZoneFactory' => $baseDir.'/../lib/CalDAV/TimeZoneFactory.php',
139
+    'OCA\\DAV\\CalDAV\\TimezoneService' => $baseDir.'/../lib/CalDAV/TimezoneService.php',
140
+    'OCA\\DAV\\CalDAV\\TipBroker' => $baseDir.'/../lib/CalDAV/TipBroker.php',
141
+    'OCA\\DAV\\CalDAV\\Trashbin\\DeletedCalendarObject' => $baseDir.'/../lib/CalDAV/Trashbin/DeletedCalendarObject.php',
142
+    'OCA\\DAV\\CalDAV\\Trashbin\\DeletedCalendarObjectsCollection' => $baseDir.'/../lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php',
143
+    'OCA\\DAV\\CalDAV\\Trashbin\\Plugin' => $baseDir.'/../lib/CalDAV/Trashbin/Plugin.php',
144
+    'OCA\\DAV\\CalDAV\\Trashbin\\RestoreTarget' => $baseDir.'/../lib/CalDAV/Trashbin/RestoreTarget.php',
145
+    'OCA\\DAV\\CalDAV\\Trashbin\\TrashbinHome' => $baseDir.'/../lib/CalDAV/Trashbin/TrashbinHome.php',
146
+    'OCA\\DAV\\CalDAV\\UpcomingEvent' => $baseDir.'/../lib/CalDAV/UpcomingEvent.php',
147
+    'OCA\\DAV\\CalDAV\\UpcomingEventsService' => $baseDir.'/../lib/CalDAV/UpcomingEventsService.php',
148
+    'OCA\\DAV\\CalDAV\\Validation\\CalDavValidatePlugin' => $baseDir.'/../lib/CalDAV/Validation/CalDavValidatePlugin.php',
149
+    'OCA\\DAV\\CalDAV\\WebcalCaching\\Connection' => $baseDir.'/../lib/CalDAV/WebcalCaching/Connection.php',
150
+    'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => $baseDir.'/../lib/CalDAV/WebcalCaching/Plugin.php',
151
+    'OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService' => $baseDir.'/../lib/CalDAV/WebcalCaching/RefreshWebcalService.php',
152
+    'OCA\\DAV\\Capabilities' => $baseDir.'/../lib/Capabilities.php',
153
+    'OCA\\DAV\\CardDAV\\Activity\\Backend' => $baseDir.'/../lib/CardDAV/Activity/Backend.php',
154
+    'OCA\\DAV\\CardDAV\\Activity\\Filter' => $baseDir.'/../lib/CardDAV/Activity/Filter.php',
155
+    'OCA\\DAV\\CardDAV\\Activity\\Provider\\Addressbook' => $baseDir.'/../lib/CardDAV/Activity/Provider/Addressbook.php',
156
+    'OCA\\DAV\\CardDAV\\Activity\\Provider\\Base' => $baseDir.'/../lib/CardDAV/Activity/Provider/Base.php',
157
+    'OCA\\DAV\\CardDAV\\Activity\\Provider\\Card' => $baseDir.'/../lib/CardDAV/Activity/Provider/Card.php',
158
+    'OCA\\DAV\\CardDAV\\Activity\\Setting' => $baseDir.'/../lib/CardDAV/Activity/Setting.php',
159
+    'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir.'/../lib/CardDAV/AddressBook.php',
160
+    'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir.'/../lib/CardDAV/AddressBookImpl.php',
161
+    'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir.'/../lib/CardDAV/AddressBookRoot.php',
162
+    'OCA\\DAV\\CardDAV\\Card' => $baseDir.'/../lib/CardDAV/Card.php',
163
+    'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir.'/../lib/CardDAV/CardDavBackend.php',
164
+    'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir.'/../lib/CardDAV/ContactsManager.php',
165
+    'OCA\\DAV\\CardDAV\\Converter' => $baseDir.'/../lib/CardDAV/Converter.php',
166
+    'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => $baseDir.'/../lib/CardDAV/HasPhotoPlugin.php',
167
+    'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir.'/../lib/CardDAV/ImageExportPlugin.php',
168
+    'OCA\\DAV\\CardDAV\\Integration\\ExternalAddressBook' => $baseDir.'/../lib/CardDAV/Integration/ExternalAddressBook.php',
169
+    'OCA\\DAV\\CardDAV\\Integration\\IAddressBookProvider' => $baseDir.'/../lib/CardDAV/Integration/IAddressBookProvider.php',
170
+    'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => $baseDir.'/../lib/CardDAV/MultiGetExportPlugin.php',
171
+    'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir.'/../lib/CardDAV/PhotoCache.php',
172
+    'OCA\\DAV\\CardDAV\\Plugin' => $baseDir.'/../lib/CardDAV/Plugin.php',
173
+    'OCA\\DAV\\CardDAV\\Security\\CardDavRateLimitingPlugin' => $baseDir.'/../lib/CardDAV/Security/CardDavRateLimitingPlugin.php',
174
+    'OCA\\DAV\\CardDAV\\Sharing\\Backend' => $baseDir.'/../lib/CardDAV/Sharing/Backend.php',
175
+    'OCA\\DAV\\CardDAV\\Sharing\\Service' => $baseDir.'/../lib/CardDAV/Sharing/Service.php',
176
+    'OCA\\DAV\\CardDAV\\SyncService' => $baseDir.'/../lib/CardDAV/SyncService.php',
177
+    'OCA\\DAV\\CardDAV\\SystemAddressbook' => $baseDir.'/../lib/CardDAV/SystemAddressbook.php',
178
+    'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir.'/../lib/CardDAV/UserAddressBooks.php',
179
+    'OCA\\DAV\\CardDAV\\Validation\\CardDavValidatePlugin' => $baseDir.'/../lib/CardDAV/Validation/CardDavValidatePlugin.php',
180
+    'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir.'/../lib/CardDAV/Xml/Groups.php',
181
+    'OCA\\DAV\\Command\\ClearCalendarUnshares' => $baseDir.'/../lib/Command/ClearCalendarUnshares.php',
182
+    'OCA\\DAV\\Command\\ClearContactsPhotoCache' => $baseDir.'/../lib/Command/ClearContactsPhotoCache.php',
183
+    'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir.'/../lib/Command/CreateAddressBook.php',
184
+    'OCA\\DAV\\Command\\CreateCalendar' => $baseDir.'/../lib/Command/CreateCalendar.php',
185
+    'OCA\\DAV\\Command\\CreateSubscription' => $baseDir.'/../lib/Command/CreateSubscription.php',
186
+    'OCA\\DAV\\Command\\DeleteCalendar' => $baseDir.'/../lib/Command/DeleteCalendar.php',
187
+    'OCA\\DAV\\Command\\DeleteSubscription' => $baseDir.'/../lib/Command/DeleteSubscription.php',
188
+    'OCA\\DAV\\Command\\ExportCalendar' => $baseDir.'/../lib/Command/ExportCalendar.php',
189
+    'OCA\\DAV\\Command\\FixCalendarSyncCommand' => $baseDir.'/../lib/Command/FixCalendarSyncCommand.php',
190
+    'OCA\\DAV\\Command\\GetAbsenceCommand' => $baseDir.'/../lib/Command/GetAbsenceCommand.php',
191
+    'OCA\\DAV\\Command\\ImportCalendar' => $baseDir.'/../lib/Command/ImportCalendar.php',
192
+    'OCA\\DAV\\Command\\ListAddressbooks' => $baseDir.'/../lib/Command/ListAddressbooks.php',
193
+    'OCA\\DAV\\Command\\ListCalendarShares' => $baseDir.'/../lib/Command/ListCalendarShares.php',
194
+    'OCA\\DAV\\Command\\ListCalendars' => $baseDir.'/../lib/Command/ListCalendars.php',
195
+    'OCA\\DAV\\Command\\ListSubscriptions' => $baseDir.'/../lib/Command/ListSubscriptions.php',
196
+    'OCA\\DAV\\Command\\MoveCalendar' => $baseDir.'/../lib/Command/MoveCalendar.php',
197
+    'OCA\\DAV\\Command\\RemoveInvalidShares' => $baseDir.'/../lib/Command/RemoveInvalidShares.php',
198
+    'OCA\\DAV\\Command\\RetentionCleanupCommand' => $baseDir.'/../lib/Command/RetentionCleanupCommand.php',
199
+    'OCA\\DAV\\Command\\SendEventReminders' => $baseDir.'/../lib/Command/SendEventReminders.php',
200
+    'OCA\\DAV\\Command\\SetAbsenceCommand' => $baseDir.'/../lib/Command/SetAbsenceCommand.php',
201
+    'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir.'/../lib/Command/SyncBirthdayCalendar.php',
202
+    'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir.'/../lib/Command/SyncSystemAddressBook.php',
203
+    'OCA\\DAV\\Comments\\CommentNode' => $baseDir.'/../lib/Comments/CommentNode.php',
204
+    'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir.'/../lib/Comments/CommentsPlugin.php',
205
+    'OCA\\DAV\\Comments\\EntityCollection' => $baseDir.'/../lib/Comments/EntityCollection.php',
206
+    'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir.'/../lib/Comments/EntityTypeCollection.php',
207
+    'OCA\\DAV\\Comments\\RootCollection' => $baseDir.'/../lib/Comments/RootCollection.php',
208
+    'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir.'/../lib/Connector/LegacyDAVACL.php',
209
+    'OCA\\DAV\\Connector\\LegacyPublicAuth' => $baseDir.'/../lib/Connector/LegacyPublicAuth.php',
210
+    'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir.'/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
211
+    'OCA\\DAV\\Connector\\Sabre\\AppleQuirksPlugin' => $baseDir.'/../lib/Connector/Sabre/AppleQuirksPlugin.php',
212
+    'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir.'/../lib/Connector/Sabre/Auth.php',
213
+    'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir.'/../lib/Connector/Sabre/BearerAuth.php',
214
+    'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir.'/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
215
+    'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir.'/../lib/Connector/Sabre/CachingTree.php',
216
+    'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir.'/../lib/Connector/Sabre/ChecksumList.php',
217
+    'OCA\\DAV\\Connector\\Sabre\\ChecksumUpdatePlugin' => $baseDir.'/../lib/Connector/Sabre/ChecksumUpdatePlugin.php',
218
+    'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir.'/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
219
+    'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir.'/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
220
+    'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir.'/../lib/Connector/Sabre/DavAclPlugin.php',
221
+    'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir.'/../lib/Connector/Sabre/Directory.php',
222
+    'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir.'/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
223
+    'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir.'/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
224
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\BadGateway' => $baseDir.'/../lib/Connector/Sabre/Exception/BadGateway.php',
225
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir.'/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
226
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir.'/../lib/Connector/Sabre/Exception/FileLocked.php',
227
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir.'/../lib/Connector/Sabre/Exception/Forbidden.php',
228
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir.'/../lib/Connector/Sabre/Exception/InvalidPath.php',
229
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir.'/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
230
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\TooManyRequests' => $baseDir.'/../lib/Connector/Sabre/Exception/TooManyRequests.php',
231
+    'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir.'/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
232
+    'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir.'/../lib/Connector/Sabre/FakeLockerPlugin.php',
233
+    'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir.'/../lib/Connector/Sabre/File.php',
234
+    'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir.'/../lib/Connector/Sabre/FilesPlugin.php',
235
+    'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir.'/../lib/Connector/Sabre/FilesReportPlugin.php',
236
+    'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir.'/../lib/Connector/Sabre/LockPlugin.php',
237
+    'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir.'/../lib/Connector/Sabre/MaintenancePlugin.php',
238
+    'OCA\\DAV\\Connector\\Sabre\\MtimeSanitizer' => $baseDir.'/../lib/Connector/Sabre/MtimeSanitizer.php',
239
+    'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir.'/../lib/Connector/Sabre/Node.php',
240
+    'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir.'/../lib/Connector/Sabre/ObjectTree.php',
241
+    'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir.'/../lib/Connector/Sabre/Principal.php',
242
+    'OCA\\DAV\\Connector\\Sabre\\PropFindMonitorPlugin' => $baseDir.'/../lib/Connector/Sabre/PropFindMonitorPlugin.php',
243
+    'OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin' => $baseDir.'/../lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php',
244
+    'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => $baseDir.'/../lib/Connector/Sabre/PropfindCompressionPlugin.php',
245
+    'OCA\\DAV\\Connector\\Sabre\\PublicAuth' => $baseDir.'/../lib/Connector/Sabre/PublicAuth.php',
246
+    'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir.'/../lib/Connector/Sabre/QuotaPlugin.php',
247
+    'OCA\\DAV\\Connector\\Sabre\\RequestIdHeaderPlugin' => $baseDir.'/../lib/Connector/Sabre/RequestIdHeaderPlugin.php',
248
+    'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir.'/../lib/Connector/Sabre/Server.php',
249
+    'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir.'/../lib/Connector/Sabre/ServerFactory.php',
250
+    'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir.'/../lib/Connector/Sabre/ShareTypeList.php',
251
+    'OCA\\DAV\\Connector\\Sabre\\ShareeList' => $baseDir.'/../lib/Connector/Sabre/ShareeList.php',
252
+    'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir.'/../lib/Connector/Sabre/SharesPlugin.php',
253
+    'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir.'/../lib/Connector/Sabre/TagList.php',
254
+    'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir.'/../lib/Connector/Sabre/TagsPlugin.php',
255
+    'OCA\\DAV\\Connector\\Sabre\\ZipFolderPlugin' => $baseDir.'/../lib/Connector/Sabre/ZipFolderPlugin.php',
256
+    'OCA\\DAV\\Controller\\BirthdayCalendarController' => $baseDir.'/../lib/Controller/BirthdayCalendarController.php',
257
+    'OCA\\DAV\\Controller\\DirectController' => $baseDir.'/../lib/Controller/DirectController.php',
258
+    'OCA\\DAV\\Controller\\ExampleContentController' => $baseDir.'/../lib/Controller/ExampleContentController.php',
259
+    'OCA\\DAV\\Controller\\InvitationResponseController' => $baseDir.'/../lib/Controller/InvitationResponseController.php',
260
+    'OCA\\DAV\\Controller\\OutOfOfficeController' => $baseDir.'/../lib/Controller/OutOfOfficeController.php',
261
+    'OCA\\DAV\\Controller\\UpcomingEventsController' => $baseDir.'/../lib/Controller/UpcomingEventsController.php',
262
+    'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir.'/../lib/DAV/CustomPropertiesBackend.php',
263
+    'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir.'/../lib/DAV/GroupPrincipalBackend.php',
264
+    'OCA\\DAV\\DAV\\PublicAuth' => $baseDir.'/../lib/DAV/PublicAuth.php',
265
+    'OCA\\DAV\\DAV\\RemoteUserPrincipalBackend' => $baseDir.'/../lib/DAV/RemoteUserPrincipalBackend.php',
266
+    'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir.'/../lib/DAV/Sharing/Backend.php',
267
+    'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir.'/../lib/DAV/Sharing/IShareable.php',
268
+    'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir.'/../lib/DAV/Sharing/Plugin.php',
269
+    'OCA\\DAV\\DAV\\Sharing\\SharingMapper' => $baseDir.'/../lib/DAV/Sharing/SharingMapper.php',
270
+    'OCA\\DAV\\DAV\\Sharing\\SharingService' => $baseDir.'/../lib/DAV/Sharing/SharingService.php',
271
+    'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir.'/../lib/DAV/Sharing/Xml/Invite.php',
272
+    'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir.'/../lib/DAV/Sharing/Xml/ShareRequest.php',
273
+    'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir.'/../lib/DAV/SystemPrincipalBackend.php',
274
+    'OCA\\DAV\\DAV\\ViewOnlyPlugin' => $baseDir.'/../lib/DAV/ViewOnlyPlugin.php',
275
+    'OCA\\DAV\\Db\\Absence' => $baseDir.'/../lib/Db/Absence.php',
276
+    'OCA\\DAV\\Db\\AbsenceMapper' => $baseDir.'/../lib/Db/AbsenceMapper.php',
277
+    'OCA\\DAV\\Db\\Direct' => $baseDir.'/../lib/Db/Direct.php',
278
+    'OCA\\DAV\\Db\\DirectMapper' => $baseDir.'/../lib/Db/DirectMapper.php',
279
+    'OCA\\DAV\\Db\\Property' => $baseDir.'/../lib/Db/Property.php',
280
+    'OCA\\DAV\\Db\\PropertyMapper' => $baseDir.'/../lib/Db/PropertyMapper.php',
281
+    'OCA\\DAV\\Direct\\DirectFile' => $baseDir.'/../lib/Direct/DirectFile.php',
282
+    'OCA\\DAV\\Direct\\DirectHome' => $baseDir.'/../lib/Direct/DirectHome.php',
283
+    'OCA\\DAV\\Direct\\Server' => $baseDir.'/../lib/Direct/Server.php',
284
+    'OCA\\DAV\\Direct\\ServerFactory' => $baseDir.'/../lib/Direct/ServerFactory.php',
285
+    'OCA\\DAV\\Events\\AddressBookCreatedEvent' => $baseDir.'/../lib/Events/AddressBookCreatedEvent.php',
286
+    'OCA\\DAV\\Events\\AddressBookDeletedEvent' => $baseDir.'/../lib/Events/AddressBookDeletedEvent.php',
287
+    'OCA\\DAV\\Events\\AddressBookShareUpdatedEvent' => $baseDir.'/../lib/Events/AddressBookShareUpdatedEvent.php',
288
+    'OCA\\DAV\\Events\\AddressBookUpdatedEvent' => $baseDir.'/../lib/Events/AddressBookUpdatedEvent.php',
289
+    'OCA\\DAV\\Events\\BeforeFileDirectDownloadedEvent' => $baseDir.'/../lib/Events/BeforeFileDirectDownloadedEvent.php',
290
+    'OCA\\DAV\\Events\\CachedCalendarObjectCreatedEvent' => $baseDir.'/../lib/Events/CachedCalendarObjectCreatedEvent.php',
291
+    'OCA\\DAV\\Events\\CachedCalendarObjectDeletedEvent' => $baseDir.'/../lib/Events/CachedCalendarObjectDeletedEvent.php',
292
+    'OCA\\DAV\\Events\\CachedCalendarObjectUpdatedEvent' => $baseDir.'/../lib/Events/CachedCalendarObjectUpdatedEvent.php',
293
+    'OCA\\DAV\\Events\\CalendarCreatedEvent' => $baseDir.'/../lib/Events/CalendarCreatedEvent.php',
294
+    'OCA\\DAV\\Events\\CalendarDeletedEvent' => $baseDir.'/../lib/Events/CalendarDeletedEvent.php',
295
+    'OCA\\DAV\\Events\\CalendarMovedToTrashEvent' => $baseDir.'/../lib/Events/CalendarMovedToTrashEvent.php',
296
+    'OCA\\DAV\\Events\\CalendarPublishedEvent' => $baseDir.'/../lib/Events/CalendarPublishedEvent.php',
297
+    'OCA\\DAV\\Events\\CalendarRestoredEvent' => $baseDir.'/../lib/Events/CalendarRestoredEvent.php',
298
+    'OCA\\DAV\\Events\\CalendarShareUpdatedEvent' => $baseDir.'/../lib/Events/CalendarShareUpdatedEvent.php',
299
+    'OCA\\DAV\\Events\\CalendarUnpublishedEvent' => $baseDir.'/../lib/Events/CalendarUnpublishedEvent.php',
300
+    'OCA\\DAV\\Events\\CalendarUpdatedEvent' => $baseDir.'/../lib/Events/CalendarUpdatedEvent.php',
301
+    'OCA\\DAV\\Events\\CardCreatedEvent' => $baseDir.'/../lib/Events/CardCreatedEvent.php',
302
+    'OCA\\DAV\\Events\\CardDeletedEvent' => $baseDir.'/../lib/Events/CardDeletedEvent.php',
303
+    'OCA\\DAV\\Events\\CardMovedEvent' => $baseDir.'/../lib/Events/CardMovedEvent.php',
304
+    'OCA\\DAV\\Events\\CardUpdatedEvent' => $baseDir.'/../lib/Events/CardUpdatedEvent.php',
305
+    'OCA\\DAV\\Events\\SabrePluginAddEvent' => $baseDir.'/../lib/Events/SabrePluginAddEvent.php',
306
+    'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => $baseDir.'/../lib/Events/SabrePluginAuthInitEvent.php',
307
+    'OCA\\DAV\\Events\\SubscriptionCreatedEvent' => $baseDir.'/../lib/Events/SubscriptionCreatedEvent.php',
308
+    'OCA\\DAV\\Events\\SubscriptionDeletedEvent' => $baseDir.'/../lib/Events/SubscriptionDeletedEvent.php',
309
+    'OCA\\DAV\\Events\\SubscriptionUpdatedEvent' => $baseDir.'/../lib/Events/SubscriptionUpdatedEvent.php',
310
+    'OCA\\DAV\\Exception\\ExampleEventException' => $baseDir.'/../lib/Exception/ExampleEventException.php',
311
+    'OCA\\DAV\\Exception\\ServerMaintenanceMode' => $baseDir.'/../lib/Exception/ServerMaintenanceMode.php',
312
+    'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => $baseDir.'/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
313
+    'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir.'/../lib/Files/BrowserErrorPagePlugin.php',
314
+    'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir.'/../lib/Files/FileSearchBackend.php',
315
+    'OCA\\DAV\\Files\\FilesHome' => $baseDir.'/../lib/Files/FilesHome.php',
316
+    'OCA\\DAV\\Files\\LazySearchBackend' => $baseDir.'/../lib/Files/LazySearchBackend.php',
317
+    'OCA\\DAV\\Files\\RootCollection' => $baseDir.'/../lib/Files/RootCollection.php',
318
+    'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir.'/../lib/Files/Sharing/FilesDropPlugin.php',
319
+    'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir.'/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
320
+    'OCA\\DAV\\Files\\Sharing\\RootCollection' => $baseDir.'/../lib/Files/Sharing/RootCollection.php',
321
+    'OCA\\DAV\\Listener\\ActivityUpdaterListener' => $baseDir.'/../lib/Listener/ActivityUpdaterListener.php',
322
+    'OCA\\DAV\\Listener\\AddMissingIndicesListener' => $baseDir.'/../lib/Listener/AddMissingIndicesListener.php',
323
+    'OCA\\DAV\\Listener\\AddressbookListener' => $baseDir.'/../lib/Listener/AddressbookListener.php',
324
+    'OCA\\DAV\\Listener\\BirthdayListener' => $baseDir.'/../lib/Listener/BirthdayListener.php',
325
+    'OCA\\DAV\\Listener\\CalendarContactInteractionListener' => $baseDir.'/../lib/Listener/CalendarContactInteractionListener.php',
326
+    'OCA\\DAV\\Listener\\CalendarDeletionDefaultUpdaterListener' => $baseDir.'/../lib/Listener/CalendarDeletionDefaultUpdaterListener.php',
327
+    'OCA\\DAV\\Listener\\CalendarFederationNotificationListener' => $baseDir.'/../lib/Listener/CalendarFederationNotificationListener.php',
328
+    'OCA\\DAV\\Listener\\CalendarObjectReminderUpdaterListener' => $baseDir.'/../lib/Listener/CalendarObjectReminderUpdaterListener.php',
329
+    'OCA\\DAV\\Listener\\CalendarPublicationListener' => $baseDir.'/../lib/Listener/CalendarPublicationListener.php',
330
+    'OCA\\DAV\\Listener\\CalendarShareUpdateListener' => $baseDir.'/../lib/Listener/CalendarShareUpdateListener.php',
331
+    'OCA\\DAV\\Listener\\CardListener' => $baseDir.'/../lib/Listener/CardListener.php',
332
+    'OCA\\DAV\\Listener\\ClearPhotoCacheListener' => $baseDir.'/../lib/Listener/ClearPhotoCacheListener.php',
333
+    'OCA\\DAV\\Listener\\DavAdminSettingsListener' => $baseDir.'/../lib/Listener/DavAdminSettingsListener.php',
334
+    'OCA\\DAV\\Listener\\OutOfOfficeListener' => $baseDir.'/../lib/Listener/OutOfOfficeListener.php',
335
+    'OCA\\DAV\\Listener\\SabrePluginAuthInitListener' => $baseDir.'/../lib/Listener/SabrePluginAuthInitListener.php',
336
+    'OCA\\DAV\\Listener\\SubscriptionListener' => $baseDir.'/../lib/Listener/SubscriptionListener.php',
337
+    'OCA\\DAV\\Listener\\TrustedServerRemovedListener' => $baseDir.'/../lib/Listener/TrustedServerRemovedListener.php',
338
+    'OCA\\DAV\\Listener\\UserEventsListener' => $baseDir.'/../lib/Listener/UserEventsListener.php',
339
+    'OCA\\DAV\\Listener\\UserPreferenceListener' => $baseDir.'/../lib/Listener/UserPreferenceListener.php',
340
+    'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir.'/../lib/Migration/BuildCalendarSearchIndex.php',
341
+    'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir.'/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
342
+    'OCA\\DAV\\Migration\\BuildSocialSearchIndex' => $baseDir.'/../lib/Migration/BuildSocialSearchIndex.php',
343
+    'OCA\\DAV\\Migration\\BuildSocialSearchIndexBackgroundJob' => $baseDir.'/../lib/Migration/BuildSocialSearchIndexBackgroundJob.php',
344
+    'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir.'/../lib/Migration/CalDAVRemoveEmptyValue.php',
345
+    'OCA\\DAV\\Migration\\ChunkCleanup' => $baseDir.'/../lib/Migration/ChunkCleanup.php',
346
+    'OCA\\DAV\\Migration\\CreateSystemAddressBookStep' => $baseDir.'/../lib/Migration/CreateSystemAddressBookStep.php',
347
+    'OCA\\DAV\\Migration\\DeleteSchedulingObjects' => $baseDir.'/../lib/Migration/DeleteSchedulingObjects.php',
348
+    'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir.'/../lib/Migration/FixBirthdayCalendarComponent.php',
349
+    'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => $baseDir.'/../lib/Migration/RefreshWebcalJobRegistrar.php',
350
+    'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => $baseDir.'/../lib/Migration/RegenerateBirthdayCalendars.php',
351
+    'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => $baseDir.'/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
352
+    'OCA\\DAV\\Migration\\RegisterUpdateCalendarResourcesRoomBackgroundJob' => $baseDir.'/../lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php',
353
+    'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => $baseDir.'/../lib/Migration/RemoveClassifiedEventActivity.php',
354
+    'OCA\\DAV\\Migration\\RemoveDeletedUsersCalendarSubscriptions' => $baseDir.'/../lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php',
355
+    'OCA\\DAV\\Migration\\RemoveObjectProperties' => $baseDir.'/../lib/Migration/RemoveObjectProperties.php',
356
+    'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => $baseDir.'/../lib/Migration/RemoveOrphanEventsAndContacts.php',
357
+    'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir.'/../lib/Migration/Version1004Date20170825134824.php',
358
+    'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir.'/../lib/Migration/Version1004Date20170919104507.php',
359
+    'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir.'/../lib/Migration/Version1004Date20170924124212.php',
360
+    'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir.'/../lib/Migration/Version1004Date20170926103422.php',
361
+    'OCA\\DAV\\Migration\\Version1005Date20180413093149' => $baseDir.'/../lib/Migration/Version1005Date20180413093149.php',
362
+    'OCA\\DAV\\Migration\\Version1005Date20180530124431' => $baseDir.'/../lib/Migration/Version1005Date20180530124431.php',
363
+    'OCA\\DAV\\Migration\\Version1006Date20180619154313' => $baseDir.'/../lib/Migration/Version1006Date20180619154313.php',
364
+    'OCA\\DAV\\Migration\\Version1006Date20180628111625' => $baseDir.'/../lib/Migration/Version1006Date20180628111625.php',
365
+    'OCA\\DAV\\Migration\\Version1008Date20181030113700' => $baseDir.'/../lib/Migration/Version1008Date20181030113700.php',
366
+    'OCA\\DAV\\Migration\\Version1008Date20181105104826' => $baseDir.'/../lib/Migration/Version1008Date20181105104826.php',
367
+    'OCA\\DAV\\Migration\\Version1008Date20181105104833' => $baseDir.'/../lib/Migration/Version1008Date20181105104833.php',
368
+    'OCA\\DAV\\Migration\\Version1008Date20181105110300' => $baseDir.'/../lib/Migration/Version1008Date20181105110300.php',
369
+    'OCA\\DAV\\Migration\\Version1008Date20181105112049' => $baseDir.'/../lib/Migration/Version1008Date20181105112049.php',
370
+    'OCA\\DAV\\Migration\\Version1008Date20181114084440' => $baseDir.'/../lib/Migration/Version1008Date20181114084440.php',
371
+    'OCA\\DAV\\Migration\\Version1011Date20190725113607' => $baseDir.'/../lib/Migration/Version1011Date20190725113607.php',
372
+    'OCA\\DAV\\Migration\\Version1011Date20190806104428' => $baseDir.'/../lib/Migration/Version1011Date20190806104428.php',
373
+    'OCA\\DAV\\Migration\\Version1012Date20190808122342' => $baseDir.'/../lib/Migration/Version1012Date20190808122342.php',
374
+    'OCA\\DAV\\Migration\\Version1016Date20201109085907' => $baseDir.'/../lib/Migration/Version1016Date20201109085907.php',
375
+    'OCA\\DAV\\Migration\\Version1017Date20210216083742' => $baseDir.'/../lib/Migration/Version1017Date20210216083742.php',
376
+    'OCA\\DAV\\Migration\\Version1018Date20210312100735' => $baseDir.'/../lib/Migration/Version1018Date20210312100735.php',
377
+    'OCA\\DAV\\Migration\\Version1024Date20211221144219' => $baseDir.'/../lib/Migration/Version1024Date20211221144219.php',
378
+    'OCA\\DAV\\Migration\\Version1025Date20240308063933' => $baseDir.'/../lib/Migration/Version1025Date20240308063933.php',
379
+    'OCA\\DAV\\Migration\\Version1027Date20230504122946' => $baseDir.'/../lib/Migration/Version1027Date20230504122946.php',
380
+    'OCA\\DAV\\Migration\\Version1029Date20221114151721' => $baseDir.'/../lib/Migration/Version1029Date20221114151721.php',
381
+    'OCA\\DAV\\Migration\\Version1029Date20231004091403' => $baseDir.'/../lib/Migration/Version1029Date20231004091403.php',
382
+    'OCA\\DAV\\Migration\\Version1030Date20240205103243' => $baseDir.'/../lib/Migration/Version1030Date20240205103243.php',
383
+    'OCA\\DAV\\Migration\\Version1031Date20240610134258' => $baseDir.'/../lib/Migration/Version1031Date20240610134258.php',
384
+    'OCA\\DAV\\Migration\\Version1034Date20250605132605' => $baseDir.'/../lib/Migration/Version1034Date20250605132605.php',
385
+    'OCA\\DAV\\Migration\\Version1034Date20250813093701' => $baseDir.'/../lib/Migration/Version1034Date20250813093701.php',
386
+    'OCA\\DAV\\Model\\ExampleEvent' => $baseDir.'/../lib/Model/ExampleEvent.php',
387
+    'OCA\\DAV\\Paginate\\LimitedCopyIterator' => $baseDir.'/../lib/Paginate/LimitedCopyIterator.php',
388
+    'OCA\\DAV\\Paginate\\PaginateCache' => $baseDir.'/../lib/Paginate/PaginateCache.php',
389
+    'OCA\\DAV\\Paginate\\PaginatePlugin' => $baseDir.'/../lib/Paginate/PaginatePlugin.php',
390
+    'OCA\\DAV\\Profiler\\ProfilerPlugin' => $baseDir.'/../lib/Profiler/ProfilerPlugin.php',
391
+    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => $baseDir.'/../lib/Provisioning/Apple/AppleProvisioningNode.php',
392
+    'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => $baseDir.'/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
393
+    'OCA\\DAV\\ResponseDefinitions' => $baseDir.'/../lib/ResponseDefinitions.php',
394
+    'OCA\\DAV\\RootCollection' => $baseDir.'/../lib/RootCollection.php',
395
+    'OCA\\DAV\\Search\\ACalendarSearchProvider' => $baseDir.'/../lib/Search/ACalendarSearchProvider.php',
396
+    'OCA\\DAV\\Search\\ContactsSearchProvider' => $baseDir.'/../lib/Search/ContactsSearchProvider.php',
397
+    'OCA\\DAV\\Search\\EventsSearchProvider' => $baseDir.'/../lib/Search/EventsSearchProvider.php',
398
+    'OCA\\DAV\\Search\\TasksSearchProvider' => $baseDir.'/../lib/Search/TasksSearchProvider.php',
399
+    'OCA\\DAV\\Server' => $baseDir.'/../lib/Server.php',
400
+    'OCA\\DAV\\ServerFactory' => $baseDir.'/../lib/ServerFactory.php',
401
+    'OCA\\DAV\\Service\\ASyncService' => $baseDir.'/../lib/Service/ASyncService.php',
402
+    'OCA\\DAV\\Service\\AbsenceService' => $baseDir.'/../lib/Service/AbsenceService.php',
403
+    'OCA\\DAV\\Service\\ExampleContactService' => $baseDir.'/../lib/Service/ExampleContactService.php',
404
+    'OCA\\DAV\\Service\\ExampleEventService' => $baseDir.'/../lib/Service/ExampleEventService.php',
405
+    'OCA\\DAV\\Settings\\Admin\\SystemAddressBookSettings' => $baseDir.'/../lib/Settings/Admin/SystemAddressBookSettings.php',
406
+    'OCA\\DAV\\Settings\\AvailabilitySettings' => $baseDir.'/../lib/Settings/AvailabilitySettings.php',
407
+    'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir.'/../lib/Settings/CalDAVSettings.php',
408
+    'OCA\\DAV\\Settings\\ExampleContentSettings' => $baseDir.'/../lib/Settings/ExampleContentSettings.php',
409
+    'OCA\\DAV\\SetupChecks\\NeedsSystemAddressBookSync' => $baseDir.'/../lib/SetupChecks/NeedsSystemAddressBookSync.php',
410
+    'OCA\\DAV\\SetupChecks\\WebdavEndpoint' => $baseDir.'/../lib/SetupChecks/WebdavEndpoint.php',
411
+    'OCA\\DAV\\Storage\\PublicOwnerWrapper' => $baseDir.'/../lib/Storage/PublicOwnerWrapper.php',
412
+    'OCA\\DAV\\Storage\\PublicShareWrapper' => $baseDir.'/../lib/Storage/PublicShareWrapper.php',
413
+    'OCA\\DAV\\SystemTag\\SystemTagList' => $baseDir.'/../lib/SystemTag/SystemTagList.php',
414
+    'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir.'/../lib/SystemTag/SystemTagMappingNode.php',
415
+    'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir.'/../lib/SystemTag/SystemTagNode.php',
416
+    'OCA\\DAV\\SystemTag\\SystemTagObjectType' => $baseDir.'/../lib/SystemTag/SystemTagObjectType.php',
417
+    'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir.'/../lib/SystemTag/SystemTagPlugin.php',
418
+    'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir.'/../lib/SystemTag/SystemTagsByIdCollection.php',
419
+    'OCA\\DAV\\SystemTag\\SystemTagsInUseCollection' => $baseDir.'/../lib/SystemTag/SystemTagsInUseCollection.php',
420
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectList' => $baseDir.'/../lib/SystemTag/SystemTagsObjectList.php',
421
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir.'/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
422
+    'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir.'/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
423
+    'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir.'/../lib/SystemTag/SystemTagsRelationsCollection.php',
424
+    'OCA\\DAV\\Traits\\PrincipalProxyTrait' => $baseDir.'/../lib/Traits/PrincipalProxyTrait.php',
425
+    'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir.'/../lib/Upload/AssemblyStream.php',
426
+    'OCA\\DAV\\Upload\\ChunkingPlugin' => $baseDir.'/../lib/Upload/ChunkingPlugin.php',
427
+    'OCA\\DAV\\Upload\\ChunkingV2Plugin' => $baseDir.'/../lib/Upload/ChunkingV2Plugin.php',
428
+    'OCA\\DAV\\Upload\\CleanupService' => $baseDir.'/../lib/Upload/CleanupService.php',
429
+    'OCA\\DAV\\Upload\\FutureFile' => $baseDir.'/../lib/Upload/FutureFile.php',
430
+    'OCA\\DAV\\Upload\\PartFile' => $baseDir.'/../lib/Upload/PartFile.php',
431
+    'OCA\\DAV\\Upload\\RootCollection' => $baseDir.'/../lib/Upload/RootCollection.php',
432
+    'OCA\\DAV\\Upload\\UploadAutoMkcolPlugin' => $baseDir.'/../lib/Upload/UploadAutoMkcolPlugin.php',
433
+    'OCA\\DAV\\Upload\\UploadFile' => $baseDir.'/../lib/Upload/UploadFile.php',
434
+    'OCA\\DAV\\Upload\\UploadFolder' => $baseDir.'/../lib/Upload/UploadFolder.php',
435
+    'OCA\\DAV\\Upload\\UploadHome' => $baseDir.'/../lib/Upload/UploadHome.php',
436
+    'OCA\\DAV\\UserMigration\\CalendarMigrator' => $baseDir.'/../lib/UserMigration/CalendarMigrator.php',
437
+    'OCA\\DAV\\UserMigration\\CalendarMigratorException' => $baseDir.'/../lib/UserMigration/CalendarMigratorException.php',
438
+    'OCA\\DAV\\UserMigration\\ContactsMigrator' => $baseDir.'/../lib/UserMigration/ContactsMigrator.php',
439
+    'OCA\\DAV\\UserMigration\\ContactsMigratorException' => $baseDir.'/../lib/UserMigration/ContactsMigratorException.php',
440
+    'OCA\\DAV\\UserMigration\\InvalidAddressBookException' => $baseDir.'/../lib/UserMigration/InvalidAddressBookException.php',
441
+    'OCA\\DAV\\UserMigration\\InvalidCalendarException' => $baseDir.'/../lib/UserMigration/InvalidCalendarException.php',
442 442
 );
Please login to merge, or discard this patch.
apps/dav/composer/composer/autoload_static.php 1 patch
Spacing   +440 added lines, -440 removed lines patch added patch discarded remove patch
@@ -6,459 +6,459 @@
 block discarded – undo
6 6
 
7 7
 class ComposerStaticInitDAV
8 8
 {
9
-    public static $prefixLengthsPsr4 = array (
9
+    public static $prefixLengthsPsr4 = array(
10 10
         'O' => 
11
-        array (
11
+        array(
12 12
             'OCA\\DAV\\' => 8,
13 13
         ),
14 14
     );
15 15
 
16
-    public static $prefixDirsPsr4 = array (
16
+    public static $prefixDirsPsr4 = array(
17 17
         'OCA\\DAV\\' => 
18
-        array (
19
-            0 => __DIR__ . '/..' . '/../lib',
18
+        array(
19
+            0 => __DIR__.'/..'.'/../lib',
20 20
         ),
21 21
     );
22 22
 
23
-    public static $classMap = array (
24
-        'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
25
-        'OCA\\DAV\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php',
26
-        'OCA\\DAV\\AppInfo\\PluginManager' => __DIR__ . '/..' . '/../lib/AppInfo/PluginManager.php',
27
-        'OCA\\DAV\\Avatars\\AvatarHome' => __DIR__ . '/..' . '/../lib/Avatars/AvatarHome.php',
28
-        'OCA\\DAV\\Avatars\\AvatarNode' => __DIR__ . '/..' . '/../lib/Avatars/AvatarNode.php',
29
-        'OCA\\DAV\\Avatars\\RootCollection' => __DIR__ . '/..' . '/../lib/Avatars/RootCollection.php',
30
-        'OCA\\DAV\\BackgroundJob\\BuildReminderIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/BuildReminderIndexBackgroundJob.php',
31
-        'OCA\\DAV\\BackgroundJob\\CalendarRetentionJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CalendarRetentionJob.php',
32
-        'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupDirectLinksJob.php',
33
-        'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
34
-        'OCA\\DAV\\BackgroundJob\\CleanupOrphanedChildrenJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupOrphanedChildrenJob.php',
35
-        'OCA\\DAV\\BackgroundJob\\DeleteOutdatedSchedulingObjects' => __DIR__ . '/..' . '/../lib/BackgroundJob/DeleteOutdatedSchedulingObjects.php',
36
-        'OCA\\DAV\\BackgroundJob\\EventReminderJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/EventReminderJob.php',
37
-        'OCA\\DAV\\BackgroundJob\\FederatedCalendarPeriodicSyncJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/FederatedCalendarPeriodicSyncJob.php',
38
-        'OCA\\DAV\\BackgroundJob\\FederatedCalendarSyncJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/FederatedCalendarSyncJob.php',
39
-        'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
40
-        'OCA\\DAV\\BackgroundJob\\OutOfOfficeEventDispatcherJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/OutOfOfficeEventDispatcherJob.php',
41
-        'OCA\\DAV\\BackgroundJob\\PruneOutdatedSyncTokensJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/PruneOutdatedSyncTokensJob.php',
42
-        'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/RefreshWebcalJob.php',
43
-        'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => __DIR__ . '/..' . '/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
44
-        'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
45
-        'OCA\\DAV\\BackgroundJob\\UploadCleanup' => __DIR__ . '/..' . '/../lib/BackgroundJob/UploadCleanup.php',
46
-        'OCA\\DAV\\BackgroundJob\\UserStatusAutomation' => __DIR__ . '/..' . '/../lib/BackgroundJob/UserStatusAutomation.php',
47
-        'OCA\\DAV\\BulkUpload\\BulkUploadPlugin' => __DIR__ . '/..' . '/../lib/BulkUpload/BulkUploadPlugin.php',
48
-        'OCA\\DAV\\BulkUpload\\MultipartRequestParser' => __DIR__ . '/..' . '/../lib/BulkUpload/MultipartRequestParser.php',
49
-        'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Backend.php',
50
-        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Calendar.php',
51
-        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Todo.php',
52
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Base.php',
53
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Calendar.php',
54
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Event.php',
55
-        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Todo.php',
56
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\CalDAVSetting' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/CalDAVSetting.php',
57
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Calendar.php',
58
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Event.php',
59
-        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Todo.php',
60
-        'OCA\\DAV\\CalDAV\\AppCalendar\\AppCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/AppCalendar/AppCalendar.php',
61
-        'OCA\\DAV\\CalDAV\\AppCalendar\\AppCalendarPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/AppCalendar/AppCalendarPlugin.php',
62
-        'OCA\\DAV\\CalDAV\\AppCalendar\\CalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/AppCalendar/CalendarObject.php',
63
-        'OCA\\DAV\\CalDAV\\Auth\\CustomPrincipalPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Auth/CustomPrincipalPlugin.php',
64
-        'OCA\\DAV\\CalDAV\\Auth\\PublicPrincipalPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Auth/PublicPrincipalPlugin.php',
65
-        'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
66
-        'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayService.php',
67
-        'OCA\\DAV\\CalDAV\\CachedSubscription' => __DIR__ . '/..' . '/../lib/CalDAV/CachedSubscription.php',
68
-        'OCA\\DAV\\CalDAV\\CachedSubscriptionImpl' => __DIR__ . '/..' . '/../lib/CalDAV/CachedSubscriptionImpl.php',
69
-        'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => __DIR__ . '/..' . '/../lib/CalDAV/CachedSubscriptionObject.php',
70
-        'OCA\\DAV\\CalDAV\\CachedSubscriptionProvider' => __DIR__ . '/..' . '/../lib/CalDAV/CachedSubscriptionProvider.php',
71
-        'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__ . '/..' . '/../lib/CalDAV/CalDavBackend.php',
72
-        'OCA\\DAV\\CalDAV\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Calendar.php',
73
-        'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarHome.php',
74
-        'OCA\\DAV\\CalDAV\\CalendarImpl' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarImpl.php',
75
-        'OCA\\DAV\\CalDAV\\CalendarManager' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarManager.php',
76
-        'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarObject.php',
77
-        'OCA\\DAV\\CalDAV\\CalendarProvider' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarProvider.php',
78
-        'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarRoot.php',
79
-        'OCA\\DAV\\CalDAV\\DefaultCalendarValidator' => __DIR__ . '/..' . '/../lib/CalDAV/DefaultCalendarValidator.php',
80
-        'OCA\\DAV\\CalDAV\\EmbeddedCalDavServer' => __DIR__ . '/..' . '/../lib/CalDAV/EmbeddedCalDavServer.php',
81
-        'OCA\\DAV\\CalDAV\\EventComparisonService' => __DIR__ . '/..' . '/../lib/CalDAV/EventComparisonService.php',
82
-        'OCA\\DAV\\CalDAV\\EventReader' => __DIR__ . '/..' . '/../lib/CalDAV/EventReader.php',
83
-        'OCA\\DAV\\CalDAV\\EventReaderRDate' => __DIR__ . '/..' . '/../lib/CalDAV/EventReaderRDate.php',
84
-        'OCA\\DAV\\CalDAV\\EventReaderRRule' => __DIR__ . '/..' . '/../lib/CalDAV/EventReaderRRule.php',
85
-        'OCA\\DAV\\CalDAV\\Export\\ExportService' => __DIR__ . '/..' . '/../lib/CalDAV/Export/ExportService.php',
86
-        'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationConfig' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/CalendarFederationConfig.php',
87
-        'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationNotifier' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/CalendarFederationNotifier.php',
88
-        'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/CalendarFederationProvider.php',
89
-        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/FederatedCalendar.php',
90
-        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarAuth' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/FederatedCalendarAuth.php',
91
-        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarEntity' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/FederatedCalendarEntity.php',
92
-        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarFactory' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/FederatedCalendarFactory.php',
93
-        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarImpl' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/FederatedCalendarImpl.php',
94
-        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarMapper' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/FederatedCalendarMapper.php',
95
-        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarSyncService' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/FederatedCalendarSyncService.php',
96
-        'OCA\\DAV\\CalDAV\\Federation\\FederationSharingService' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/FederationSharingService.php',
97
-        'OCA\\DAV\\CalDAV\\Federation\\Protocol\\CalendarFederationProtocolV1' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/Protocol/CalendarFederationProtocolV1.php',
98
-        'OCA\\DAV\\CalDAV\\Federation\\Protocol\\CalendarProtocolParseException' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/Protocol/CalendarProtocolParseException.php',
99
-        'OCA\\DAV\\CalDAV\\Federation\\Protocol\\ICalendarFederationProtocol' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/Protocol/ICalendarFederationProtocol.php',
100
-        'OCA\\DAV\\CalDAV\\Federation\\RemoteUserCalendarHome' => __DIR__ . '/..' . '/../lib/CalDAV/Federation/RemoteUserCalendarHome.php',
101
-        'OCA\\DAV\\CalDAV\\FreeBusy\\FreeBusyGenerator' => __DIR__ . '/..' . '/../lib/CalDAV/FreeBusy/FreeBusyGenerator.php',
102
-        'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
103
-        'OCA\\DAV\\CalDAV\\IRestorable' => __DIR__ . '/..' . '/../lib/CalDAV/IRestorable.php',
104
-        'OCA\\DAV\\CalDAV\\Import\\ImportService' => __DIR__ . '/..' . '/../lib/CalDAV/Import/ImportService.php',
105
-        'OCA\\DAV\\CalDAV\\Import\\TextImporter' => __DIR__ . '/..' . '/../lib/CalDAV/Import/TextImporter.php',
106
-        'OCA\\DAV\\CalDAV\\Import\\XmlImporter' => __DIR__ . '/..' . '/../lib/CalDAV/Import/XmlImporter.php',
107
-        'OCA\\DAV\\CalDAV\\Integration\\ExternalCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/Integration/ExternalCalendar.php',
108
-        'OCA\\DAV\\CalDAV\\Integration\\ICalendarProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Integration/ICalendarProvider.php',
109
-        'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => __DIR__ . '/..' . '/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
110
-        'OCA\\DAV\\CalDAV\\Outbox' => __DIR__ . '/..' . '/../lib/CalDAV/Outbox.php',
111
-        'OCA\\DAV\\CalDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Plugin.php',
112
-        'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/Collection.php',
113
-        'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/User.php',
114
-        'OCA\\DAV\\CalDAV\\Proxy\\Proxy' => __DIR__ . '/..' . '/../lib/CalDAV/Proxy/Proxy.php',
115
-        'OCA\\DAV\\CalDAV\\Proxy\\ProxyMapper' => __DIR__ . '/..' . '/../lib/CalDAV/Proxy/ProxyMapper.php',
116
-        'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendar.php',
117
-        'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarObject.php',
118
-        'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarRoot.php',
119
-        'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/PublishPlugin.php',
120
-        'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/Xml/Publisher.php',
121
-        'OCA\\DAV\\CalDAV\\Reminder\\Backend' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/Backend.php',
122
-        'OCA\\DAV\\CalDAV\\Reminder\\INotificationProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/INotificationProvider.php',
123
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProviderManager' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProviderManager.php',
124
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AbstractProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php',
125
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AudioProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/AudioProvider.php',
126
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\EmailProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php',
127
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\ProviderNotAvailableException' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/ProviderNotAvailableException.php',
128
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\PushProvider' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationProvider/PushProvider.php',
129
-        'OCA\\DAV\\CalDAV\\Reminder\\NotificationTypeDoesNotExistException' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/NotificationTypeDoesNotExistException.php',
130
-        'OCA\\DAV\\CalDAV\\Reminder\\Notifier' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/Notifier.php',
131
-        'OCA\\DAV\\CalDAV\\Reminder\\ReminderService' => __DIR__ . '/..' . '/../lib/CalDAV/Reminder/ReminderService.php',
132
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
133
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
134
-        'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => __DIR__ . '/..' . '/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
135
-        'OCA\\DAV\\CalDAV\\RetentionService' => __DIR__ . '/..' . '/../lib/CalDAV/RetentionService.php',
136
-        'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/IMipPlugin.php',
137
-        'OCA\\DAV\\CalDAV\\Schedule\\IMipService' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/IMipService.php',
138
-        'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/Plugin.php',
139
-        'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Search/SearchPlugin.php',
140
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
141
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
142
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
143
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
144
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
145
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
146
-        'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
147
-        'OCA\\DAV\\CalDAV\\Security\\RateLimitingPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Security/RateLimitingPlugin.php',
148
-        'OCA\\DAV\\CalDAV\\Sharing\\Backend' => __DIR__ . '/..' . '/../lib/CalDAV/Sharing/Backend.php',
149
-        'OCA\\DAV\\CalDAV\\Sharing\\Service' => __DIR__ . '/..' . '/../lib/CalDAV/Sharing/Service.php',
150
-        'OCA\\DAV\\CalDAV\\Status\\StatusService' => __DIR__ . '/..' . '/../lib/CalDAV/Status/StatusService.php',
151
-        'OCA\\DAV\\CalDAV\\SyncService' => __DIR__ . '/..' . '/../lib/CalDAV/SyncService.php',
152
-        'OCA\\DAV\\CalDAV\\SyncServiceResult' => __DIR__ . '/..' . '/../lib/CalDAV/SyncServiceResult.php',
153
-        'OCA\\DAV\\CalDAV\\TimeZoneFactory' => __DIR__ . '/..' . '/../lib/CalDAV/TimeZoneFactory.php',
154
-        'OCA\\DAV\\CalDAV\\TimezoneService' => __DIR__ . '/..' . '/../lib/CalDAV/TimezoneService.php',
155
-        'OCA\\DAV\\CalDAV\\TipBroker' => __DIR__ . '/..' . '/../lib/CalDAV/TipBroker.php',
156
-        'OCA\\DAV\\CalDAV\\Trashbin\\DeletedCalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/Trashbin/DeletedCalendarObject.php',
157
-        'OCA\\DAV\\CalDAV\\Trashbin\\DeletedCalendarObjectsCollection' => __DIR__ . '/..' . '/../lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php',
158
-        'OCA\\DAV\\CalDAV\\Trashbin\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Trashbin/Plugin.php',
159
-        'OCA\\DAV\\CalDAV\\Trashbin\\RestoreTarget' => __DIR__ . '/..' . '/../lib/CalDAV/Trashbin/RestoreTarget.php',
160
-        'OCA\\DAV\\CalDAV\\Trashbin\\TrashbinHome' => __DIR__ . '/..' . '/../lib/CalDAV/Trashbin/TrashbinHome.php',
161
-        'OCA\\DAV\\CalDAV\\UpcomingEvent' => __DIR__ . '/..' . '/../lib/CalDAV/UpcomingEvent.php',
162
-        'OCA\\DAV\\CalDAV\\UpcomingEventsService' => __DIR__ . '/..' . '/../lib/CalDAV/UpcomingEventsService.php',
163
-        'OCA\\DAV\\CalDAV\\Validation\\CalDavValidatePlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Validation/CalDavValidatePlugin.php',
164
-        'OCA\\DAV\\CalDAV\\WebcalCaching\\Connection' => __DIR__ . '/..' . '/../lib/CalDAV/WebcalCaching/Connection.php',
165
-        'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/WebcalCaching/Plugin.php',
166
-        'OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService' => __DIR__ . '/..' . '/../lib/CalDAV/WebcalCaching/RefreshWebcalService.php',
167
-        'OCA\\DAV\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php',
168
-        'OCA\\DAV\\CardDAV\\Activity\\Backend' => __DIR__ . '/..' . '/../lib/CardDAV/Activity/Backend.php',
169
-        'OCA\\DAV\\CardDAV\\Activity\\Filter' => __DIR__ . '/..' . '/../lib/CardDAV/Activity/Filter.php',
170
-        'OCA\\DAV\\CardDAV\\Activity\\Provider\\Addressbook' => __DIR__ . '/..' . '/../lib/CardDAV/Activity/Provider/Addressbook.php',
171
-        'OCA\\DAV\\CardDAV\\Activity\\Provider\\Base' => __DIR__ . '/..' . '/../lib/CardDAV/Activity/Provider/Base.php',
172
-        'OCA\\DAV\\CardDAV\\Activity\\Provider\\Card' => __DIR__ . '/..' . '/../lib/CardDAV/Activity/Provider/Card.php',
173
-        'OCA\\DAV\\CardDAV\\Activity\\Setting' => __DIR__ . '/..' . '/../lib/CardDAV/Activity/Setting.php',
174
-        'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBook.php',
175
-        'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookImpl.php',
176
-        'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookRoot.php',
177
-        'OCA\\DAV\\CardDAV\\Card' => __DIR__ . '/..' . '/../lib/CardDAV/Card.php',
178
-        'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__ . '/..' . '/../lib/CardDAV/CardDavBackend.php',
179
-        'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__ . '/..' . '/../lib/CardDAV/ContactsManager.php',
180
-        'OCA\\DAV\\CardDAV\\Converter' => __DIR__ . '/..' . '/../lib/CardDAV/Converter.php',
181
-        'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/HasPhotoPlugin.php',
182
-        'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/ImageExportPlugin.php',
183
-        'OCA\\DAV\\CardDAV\\Integration\\ExternalAddressBook' => __DIR__ . '/..' . '/../lib/CardDAV/Integration/ExternalAddressBook.php',
184
-        'OCA\\DAV\\CardDAV\\Integration\\IAddressBookProvider' => __DIR__ . '/..' . '/../lib/CardDAV/Integration/IAddressBookProvider.php',
185
-        'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/MultiGetExportPlugin.php',
186
-        'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__ . '/..' . '/../lib/CardDAV/PhotoCache.php',
187
-        'OCA\\DAV\\CardDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CardDAV/Plugin.php',
188
-        'OCA\\DAV\\CardDAV\\Security\\CardDavRateLimitingPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/Security/CardDavRateLimitingPlugin.php',
189
-        'OCA\\DAV\\CardDAV\\Sharing\\Backend' => __DIR__ . '/..' . '/../lib/CardDAV/Sharing/Backend.php',
190
-        'OCA\\DAV\\CardDAV\\Sharing\\Service' => __DIR__ . '/..' . '/../lib/CardDAV/Sharing/Service.php',
191
-        'OCA\\DAV\\CardDAV\\SyncService' => __DIR__ . '/..' . '/../lib/CardDAV/SyncService.php',
192
-        'OCA\\DAV\\CardDAV\\SystemAddressbook' => __DIR__ . '/..' . '/../lib/CardDAV/SystemAddressbook.php',
193
-        'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__ . '/..' . '/../lib/CardDAV/UserAddressBooks.php',
194
-        'OCA\\DAV\\CardDAV\\Validation\\CardDavValidatePlugin' => __DIR__ . '/..' . '/../lib/CardDAV/Validation/CardDavValidatePlugin.php',
195
-        'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__ . '/..' . '/../lib/CardDAV/Xml/Groups.php',
196
-        'OCA\\DAV\\Command\\ClearCalendarUnshares' => __DIR__ . '/..' . '/../lib/Command/ClearCalendarUnshares.php',
197
-        'OCA\\DAV\\Command\\ClearContactsPhotoCache' => __DIR__ . '/..' . '/../lib/Command/ClearContactsPhotoCache.php',
198
-        'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__ . '/..' . '/../lib/Command/CreateAddressBook.php',
199
-        'OCA\\DAV\\Command\\CreateCalendar' => __DIR__ . '/..' . '/../lib/Command/CreateCalendar.php',
200
-        'OCA\\DAV\\Command\\CreateSubscription' => __DIR__ . '/..' . '/../lib/Command/CreateSubscription.php',
201
-        'OCA\\DAV\\Command\\DeleteCalendar' => __DIR__ . '/..' . '/../lib/Command/DeleteCalendar.php',
202
-        'OCA\\DAV\\Command\\DeleteSubscription' => __DIR__ . '/..' . '/../lib/Command/DeleteSubscription.php',
203
-        'OCA\\DAV\\Command\\ExportCalendar' => __DIR__ . '/..' . '/../lib/Command/ExportCalendar.php',
204
-        'OCA\\DAV\\Command\\FixCalendarSyncCommand' => __DIR__ . '/..' . '/../lib/Command/FixCalendarSyncCommand.php',
205
-        'OCA\\DAV\\Command\\GetAbsenceCommand' => __DIR__ . '/..' . '/../lib/Command/GetAbsenceCommand.php',
206
-        'OCA\\DAV\\Command\\ImportCalendar' => __DIR__ . '/..' . '/../lib/Command/ImportCalendar.php',
207
-        'OCA\\DAV\\Command\\ListAddressbooks' => __DIR__ . '/..' . '/../lib/Command/ListAddressbooks.php',
208
-        'OCA\\DAV\\Command\\ListCalendarShares' => __DIR__ . '/..' . '/../lib/Command/ListCalendarShares.php',
209
-        'OCA\\DAV\\Command\\ListCalendars' => __DIR__ . '/..' . '/../lib/Command/ListCalendars.php',
210
-        'OCA\\DAV\\Command\\ListSubscriptions' => __DIR__ . '/..' . '/../lib/Command/ListSubscriptions.php',
211
-        'OCA\\DAV\\Command\\MoveCalendar' => __DIR__ . '/..' . '/../lib/Command/MoveCalendar.php',
212
-        'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__ . '/..' . '/../lib/Command/RemoveInvalidShares.php',
213
-        'OCA\\DAV\\Command\\RetentionCleanupCommand' => __DIR__ . '/..' . '/../lib/Command/RetentionCleanupCommand.php',
214
-        'OCA\\DAV\\Command\\SendEventReminders' => __DIR__ . '/..' . '/../lib/Command/SendEventReminders.php',
215
-        'OCA\\DAV\\Command\\SetAbsenceCommand' => __DIR__ . '/..' . '/../lib/Command/SetAbsenceCommand.php',
216
-        'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__ . '/..' . '/../lib/Command/SyncBirthdayCalendar.php',
217
-        'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__ . '/..' . '/../lib/Command/SyncSystemAddressBook.php',
218
-        'OCA\\DAV\\Comments\\CommentNode' => __DIR__ . '/..' . '/../lib/Comments/CommentNode.php',
219
-        'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__ . '/..' . '/../lib/Comments/CommentsPlugin.php',
220
-        'OCA\\DAV\\Comments\\EntityCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityCollection.php',
221
-        'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityTypeCollection.php',
222
-        'OCA\\DAV\\Comments\\RootCollection' => __DIR__ . '/..' . '/../lib/Comments/RootCollection.php',
223
-        'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__ . '/..' . '/../lib/Connector/LegacyDAVACL.php',
224
-        'OCA\\DAV\\Connector\\LegacyPublicAuth' => __DIR__ . '/..' . '/../lib/Connector/LegacyPublicAuth.php',
225
-        'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
226
-        'OCA\\DAV\\Connector\\Sabre\\AppleQuirksPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AppleQuirksPlugin.php',
227
-        'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Auth.php',
228
-        'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BearerAuth.php',
229
-        'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
230
-        'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CachingTree.php',
231
-        'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ChecksumList.php',
232
-        'OCA\\DAV\\Connector\\Sabre\\ChecksumUpdatePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ChecksumUpdatePlugin.php',
233
-        'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
234
-        'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
235
-        'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DavAclPlugin.php',
236
-        'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Directory.php',
237
-        'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
238
-        'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
239
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\BadGateway' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/BadGateway.php',
240
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
241
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/FileLocked.php',
242
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/Forbidden.php',
243
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/InvalidPath.php',
244
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
245
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\TooManyRequests' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/TooManyRequests.php',
246
-        'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
247
-        'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FakeLockerPlugin.php',
248
-        'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__ . '/..' . '/../lib/Connector/Sabre/File.php',
249
-        'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesPlugin.php',
250
-        'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesReportPlugin.php',
251
-        'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/LockPlugin.php',
252
-        'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/MaintenancePlugin.php',
253
-        'OCA\\DAV\\Connector\\Sabre\\MtimeSanitizer' => __DIR__ . '/..' . '/../lib/Connector/Sabre/MtimeSanitizer.php',
254
-        'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Node.php',
255
-        'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ObjectTree.php',
256
-        'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Principal.php',
257
-        'OCA\\DAV\\Connector\\Sabre\\PropFindMonitorPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/PropFindMonitorPlugin.php',
258
-        'OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php',
259
-        'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/PropfindCompressionPlugin.php',
260
-        'OCA\\DAV\\Connector\\Sabre\\PublicAuth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/PublicAuth.php',
261
-        'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/QuotaPlugin.php',
262
-        'OCA\\DAV\\Connector\\Sabre\\RequestIdHeaderPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/RequestIdHeaderPlugin.php',
263
-        'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Server.php',
264
-        'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ServerFactory.php',
265
-        'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ShareTypeList.php',
266
-        'OCA\\DAV\\Connector\\Sabre\\ShareeList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ShareeList.php',
267
-        'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/SharesPlugin.php',
268
-        'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagList.php',
269
-        'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagsPlugin.php',
270
-        'OCA\\DAV\\Connector\\Sabre\\ZipFolderPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ZipFolderPlugin.php',
271
-        'OCA\\DAV\\Controller\\BirthdayCalendarController' => __DIR__ . '/..' . '/../lib/Controller/BirthdayCalendarController.php',
272
-        'OCA\\DAV\\Controller\\DirectController' => __DIR__ . '/..' . '/../lib/Controller/DirectController.php',
273
-        'OCA\\DAV\\Controller\\ExampleContentController' => __DIR__ . '/..' . '/../lib/Controller/ExampleContentController.php',
274
-        'OCA\\DAV\\Controller\\InvitationResponseController' => __DIR__ . '/..' . '/../lib/Controller/InvitationResponseController.php',
275
-        'OCA\\DAV\\Controller\\OutOfOfficeController' => __DIR__ . '/..' . '/../lib/Controller/OutOfOfficeController.php',
276
-        'OCA\\DAV\\Controller\\UpcomingEventsController' => __DIR__ . '/..' . '/../lib/Controller/UpcomingEventsController.php',
277
-        'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__ . '/..' . '/../lib/DAV/CustomPropertiesBackend.php',
278
-        'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/GroupPrincipalBackend.php',
279
-        'OCA\\DAV\\DAV\\PublicAuth' => __DIR__ . '/..' . '/../lib/DAV/PublicAuth.php',
280
-        'OCA\\DAV\\DAV\\RemoteUserPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/RemoteUserPrincipalBackend.php',
281
-        'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Backend.php',
282
-        'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__ . '/..' . '/../lib/DAV/Sharing/IShareable.php',
283
-        'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Plugin.php',
284
-        'OCA\\DAV\\DAV\\Sharing\\SharingMapper' => __DIR__ . '/..' . '/../lib/DAV/Sharing/SharingMapper.php',
285
-        'OCA\\DAV\\DAV\\Sharing\\SharingService' => __DIR__ . '/..' . '/../lib/DAV/Sharing/SharingService.php',
286
-        'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/Invite.php',
287
-        'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/ShareRequest.php',
288
-        'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/SystemPrincipalBackend.php',
289
-        'OCA\\DAV\\DAV\\ViewOnlyPlugin' => __DIR__ . '/..' . '/../lib/DAV/ViewOnlyPlugin.php',
290
-        'OCA\\DAV\\Db\\Absence' => __DIR__ . '/..' . '/../lib/Db/Absence.php',
291
-        'OCA\\DAV\\Db\\AbsenceMapper' => __DIR__ . '/..' . '/../lib/Db/AbsenceMapper.php',
292
-        'OCA\\DAV\\Db\\Direct' => __DIR__ . '/..' . '/../lib/Db/Direct.php',
293
-        'OCA\\DAV\\Db\\DirectMapper' => __DIR__ . '/..' . '/../lib/Db/DirectMapper.php',
294
-        'OCA\\DAV\\Db\\Property' => __DIR__ . '/..' . '/../lib/Db/Property.php',
295
-        'OCA\\DAV\\Db\\PropertyMapper' => __DIR__ . '/..' . '/../lib/Db/PropertyMapper.php',
296
-        'OCA\\DAV\\Direct\\DirectFile' => __DIR__ . '/..' . '/../lib/Direct/DirectFile.php',
297
-        'OCA\\DAV\\Direct\\DirectHome' => __DIR__ . '/..' . '/../lib/Direct/DirectHome.php',
298
-        'OCA\\DAV\\Direct\\Server' => __DIR__ . '/..' . '/../lib/Direct/Server.php',
299
-        'OCA\\DAV\\Direct\\ServerFactory' => __DIR__ . '/..' . '/../lib/Direct/ServerFactory.php',
300
-        'OCA\\DAV\\Events\\AddressBookCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/AddressBookCreatedEvent.php',
301
-        'OCA\\DAV\\Events\\AddressBookDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/AddressBookDeletedEvent.php',
302
-        'OCA\\DAV\\Events\\AddressBookShareUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/AddressBookShareUpdatedEvent.php',
303
-        'OCA\\DAV\\Events\\AddressBookUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/AddressBookUpdatedEvent.php',
304
-        'OCA\\DAV\\Events\\BeforeFileDirectDownloadedEvent' => __DIR__ . '/..' . '/../lib/Events/BeforeFileDirectDownloadedEvent.php',
305
-        'OCA\\DAV\\Events\\CachedCalendarObjectCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/CachedCalendarObjectCreatedEvent.php',
306
-        'OCA\\DAV\\Events\\CachedCalendarObjectDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/CachedCalendarObjectDeletedEvent.php',
307
-        'OCA\\DAV\\Events\\CachedCalendarObjectUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CachedCalendarObjectUpdatedEvent.php',
308
-        'OCA\\DAV\\Events\\CalendarCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarCreatedEvent.php',
309
-        'OCA\\DAV\\Events\\CalendarDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarDeletedEvent.php',
310
-        'OCA\\DAV\\Events\\CalendarMovedToTrashEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarMovedToTrashEvent.php',
311
-        'OCA\\DAV\\Events\\CalendarPublishedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarPublishedEvent.php',
312
-        'OCA\\DAV\\Events\\CalendarRestoredEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarRestoredEvent.php',
313
-        'OCA\\DAV\\Events\\CalendarShareUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarShareUpdatedEvent.php',
314
-        'OCA\\DAV\\Events\\CalendarUnpublishedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarUnpublishedEvent.php',
315
-        'OCA\\DAV\\Events\\CalendarUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CalendarUpdatedEvent.php',
316
-        'OCA\\DAV\\Events\\CardCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/CardCreatedEvent.php',
317
-        'OCA\\DAV\\Events\\CardDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/CardDeletedEvent.php',
318
-        'OCA\\DAV\\Events\\CardMovedEvent' => __DIR__ . '/..' . '/../lib/Events/CardMovedEvent.php',
319
-        'OCA\\DAV\\Events\\CardUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CardUpdatedEvent.php',
320
-        'OCA\\DAV\\Events\\SabrePluginAddEvent' => __DIR__ . '/..' . '/../lib/Events/SabrePluginAddEvent.php',
321
-        'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => __DIR__ . '/..' . '/../lib/Events/SabrePluginAuthInitEvent.php',
322
-        'OCA\\DAV\\Events\\SubscriptionCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/SubscriptionCreatedEvent.php',
323
-        'OCA\\DAV\\Events\\SubscriptionDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/SubscriptionDeletedEvent.php',
324
-        'OCA\\DAV\\Events\\SubscriptionUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/SubscriptionUpdatedEvent.php',
325
-        'OCA\\DAV\\Exception\\ExampleEventException' => __DIR__ . '/..' . '/../lib/Exception/ExampleEventException.php',
326
-        'OCA\\DAV\\Exception\\ServerMaintenanceMode' => __DIR__ . '/..' . '/../lib/Exception/ServerMaintenanceMode.php',
327
-        'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => __DIR__ . '/..' . '/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
328
-        'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__ . '/..' . '/../lib/Files/BrowserErrorPagePlugin.php',
329
-        'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__ . '/..' . '/../lib/Files/FileSearchBackend.php',
330
-        'OCA\\DAV\\Files\\FilesHome' => __DIR__ . '/..' . '/../lib/Files/FilesHome.php',
331
-        'OCA\\DAV\\Files\\LazySearchBackend' => __DIR__ . '/..' . '/../lib/Files/LazySearchBackend.php',
332
-        'OCA\\DAV\\Files\\RootCollection' => __DIR__ . '/..' . '/../lib/Files/RootCollection.php',
333
-        'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/FilesDropPlugin.php',
334
-        'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
335
-        'OCA\\DAV\\Files\\Sharing\\RootCollection' => __DIR__ . '/..' . '/../lib/Files/Sharing/RootCollection.php',
336
-        'OCA\\DAV\\Listener\\ActivityUpdaterListener' => __DIR__ . '/..' . '/../lib/Listener/ActivityUpdaterListener.php',
337
-        'OCA\\DAV\\Listener\\AddMissingIndicesListener' => __DIR__ . '/..' . '/../lib/Listener/AddMissingIndicesListener.php',
338
-        'OCA\\DAV\\Listener\\AddressbookListener' => __DIR__ . '/..' . '/../lib/Listener/AddressbookListener.php',
339
-        'OCA\\DAV\\Listener\\BirthdayListener' => __DIR__ . '/..' . '/../lib/Listener/BirthdayListener.php',
340
-        'OCA\\DAV\\Listener\\CalendarContactInteractionListener' => __DIR__ . '/..' . '/../lib/Listener/CalendarContactInteractionListener.php',
341
-        'OCA\\DAV\\Listener\\CalendarDeletionDefaultUpdaterListener' => __DIR__ . '/..' . '/../lib/Listener/CalendarDeletionDefaultUpdaterListener.php',
342
-        'OCA\\DAV\\Listener\\CalendarFederationNotificationListener' => __DIR__ . '/..' . '/../lib/Listener/CalendarFederationNotificationListener.php',
343
-        'OCA\\DAV\\Listener\\CalendarObjectReminderUpdaterListener' => __DIR__ . '/..' . '/../lib/Listener/CalendarObjectReminderUpdaterListener.php',
344
-        'OCA\\DAV\\Listener\\CalendarPublicationListener' => __DIR__ . '/..' . '/../lib/Listener/CalendarPublicationListener.php',
345
-        'OCA\\DAV\\Listener\\CalendarShareUpdateListener' => __DIR__ . '/..' . '/../lib/Listener/CalendarShareUpdateListener.php',
346
-        'OCA\\DAV\\Listener\\CardListener' => __DIR__ . '/..' . '/../lib/Listener/CardListener.php',
347
-        'OCA\\DAV\\Listener\\ClearPhotoCacheListener' => __DIR__ . '/..' . '/../lib/Listener/ClearPhotoCacheListener.php',
348
-        'OCA\\DAV\\Listener\\DavAdminSettingsListener' => __DIR__ . '/..' . '/../lib/Listener/DavAdminSettingsListener.php',
349
-        'OCA\\DAV\\Listener\\OutOfOfficeListener' => __DIR__ . '/..' . '/../lib/Listener/OutOfOfficeListener.php',
350
-        'OCA\\DAV\\Listener\\SabrePluginAuthInitListener' => __DIR__ . '/..' . '/../lib/Listener/SabrePluginAuthInitListener.php',
351
-        'OCA\\DAV\\Listener\\SubscriptionListener' => __DIR__ . '/..' . '/../lib/Listener/SubscriptionListener.php',
352
-        'OCA\\DAV\\Listener\\TrustedServerRemovedListener' => __DIR__ . '/..' . '/../lib/Listener/TrustedServerRemovedListener.php',
353
-        'OCA\\DAV\\Listener\\UserEventsListener' => __DIR__ . '/..' . '/../lib/Listener/UserEventsListener.php',
354
-        'OCA\\DAV\\Listener\\UserPreferenceListener' => __DIR__ . '/..' . '/../lib/Listener/UserPreferenceListener.php',
355
-        'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndex.php',
356
-        'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
357
-        'OCA\\DAV\\Migration\\BuildSocialSearchIndex' => __DIR__ . '/..' . '/../lib/Migration/BuildSocialSearchIndex.php',
358
-        'OCA\\DAV\\Migration\\BuildSocialSearchIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/BuildSocialSearchIndexBackgroundJob.php',
359
-        'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__ . '/..' . '/../lib/Migration/CalDAVRemoveEmptyValue.php',
360
-        'OCA\\DAV\\Migration\\ChunkCleanup' => __DIR__ . '/..' . '/../lib/Migration/ChunkCleanup.php',
361
-        'OCA\\DAV\\Migration\\CreateSystemAddressBookStep' => __DIR__ . '/..' . '/../lib/Migration/CreateSystemAddressBookStep.php',
362
-        'OCA\\DAV\\Migration\\DeleteSchedulingObjects' => __DIR__ . '/..' . '/../lib/Migration/DeleteSchedulingObjects.php',
363
-        'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__ . '/..' . '/../lib/Migration/FixBirthdayCalendarComponent.php',
364
-        'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => __DIR__ . '/..' . '/../lib/Migration/RefreshWebcalJobRegistrar.php',
365
-        'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => __DIR__ . '/..' . '/../lib/Migration/RegenerateBirthdayCalendars.php',
366
-        'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
367
-        'OCA\\DAV\\Migration\\RegisterUpdateCalendarResourcesRoomBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php',
368
-        'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => __DIR__ . '/..' . '/../lib/Migration/RemoveClassifiedEventActivity.php',
369
-        'OCA\\DAV\\Migration\\RemoveDeletedUsersCalendarSubscriptions' => __DIR__ . '/..' . '/../lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php',
370
-        'OCA\\DAV\\Migration\\RemoveObjectProperties' => __DIR__ . '/..' . '/../lib/Migration/RemoveObjectProperties.php',
371
-        'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => __DIR__ . '/..' . '/../lib/Migration/RemoveOrphanEventsAndContacts.php',
372
-        'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170825134824.php',
373
-        'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170919104507.php',
374
-        'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170924124212.php',
375
-        'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170926103422.php',
376
-        'OCA\\DAV\\Migration\\Version1005Date20180413093149' => __DIR__ . '/..' . '/../lib/Migration/Version1005Date20180413093149.php',
377
-        'OCA\\DAV\\Migration\\Version1005Date20180530124431' => __DIR__ . '/..' . '/../lib/Migration/Version1005Date20180530124431.php',
378
-        'OCA\\DAV\\Migration\\Version1006Date20180619154313' => __DIR__ . '/..' . '/../lib/Migration/Version1006Date20180619154313.php',
379
-        'OCA\\DAV\\Migration\\Version1006Date20180628111625' => __DIR__ . '/..' . '/../lib/Migration/Version1006Date20180628111625.php',
380
-        'OCA\\DAV\\Migration\\Version1008Date20181030113700' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181030113700.php',
381
-        'OCA\\DAV\\Migration\\Version1008Date20181105104826' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105104826.php',
382
-        'OCA\\DAV\\Migration\\Version1008Date20181105104833' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105104833.php',
383
-        'OCA\\DAV\\Migration\\Version1008Date20181105110300' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105110300.php',
384
-        'OCA\\DAV\\Migration\\Version1008Date20181105112049' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181105112049.php',
385
-        'OCA\\DAV\\Migration\\Version1008Date20181114084440' => __DIR__ . '/..' . '/../lib/Migration/Version1008Date20181114084440.php',
386
-        'OCA\\DAV\\Migration\\Version1011Date20190725113607' => __DIR__ . '/..' . '/../lib/Migration/Version1011Date20190725113607.php',
387
-        'OCA\\DAV\\Migration\\Version1011Date20190806104428' => __DIR__ . '/..' . '/../lib/Migration/Version1011Date20190806104428.php',
388
-        'OCA\\DAV\\Migration\\Version1012Date20190808122342' => __DIR__ . '/..' . '/../lib/Migration/Version1012Date20190808122342.php',
389
-        'OCA\\DAV\\Migration\\Version1016Date20201109085907' => __DIR__ . '/..' . '/../lib/Migration/Version1016Date20201109085907.php',
390
-        'OCA\\DAV\\Migration\\Version1017Date20210216083742' => __DIR__ . '/..' . '/../lib/Migration/Version1017Date20210216083742.php',
391
-        'OCA\\DAV\\Migration\\Version1018Date20210312100735' => __DIR__ . '/..' . '/../lib/Migration/Version1018Date20210312100735.php',
392
-        'OCA\\DAV\\Migration\\Version1024Date20211221144219' => __DIR__ . '/..' . '/../lib/Migration/Version1024Date20211221144219.php',
393
-        'OCA\\DAV\\Migration\\Version1025Date20240308063933' => __DIR__ . '/..' . '/../lib/Migration/Version1025Date20240308063933.php',
394
-        'OCA\\DAV\\Migration\\Version1027Date20230504122946' => __DIR__ . '/..' . '/../lib/Migration/Version1027Date20230504122946.php',
395
-        'OCA\\DAV\\Migration\\Version1029Date20221114151721' => __DIR__ . '/..' . '/../lib/Migration/Version1029Date20221114151721.php',
396
-        'OCA\\DAV\\Migration\\Version1029Date20231004091403' => __DIR__ . '/..' . '/../lib/Migration/Version1029Date20231004091403.php',
397
-        'OCA\\DAV\\Migration\\Version1030Date20240205103243' => __DIR__ . '/..' . '/../lib/Migration/Version1030Date20240205103243.php',
398
-        'OCA\\DAV\\Migration\\Version1031Date20240610134258' => __DIR__ . '/..' . '/../lib/Migration/Version1031Date20240610134258.php',
399
-        'OCA\\DAV\\Migration\\Version1034Date20250605132605' => __DIR__ . '/..' . '/../lib/Migration/Version1034Date20250605132605.php',
400
-        'OCA\\DAV\\Migration\\Version1034Date20250813093701' => __DIR__ . '/..' . '/../lib/Migration/Version1034Date20250813093701.php',
401
-        'OCA\\DAV\\Model\\ExampleEvent' => __DIR__ . '/..' . '/../lib/Model/ExampleEvent.php',
402
-        'OCA\\DAV\\Paginate\\LimitedCopyIterator' => __DIR__ . '/..' . '/../lib/Paginate/LimitedCopyIterator.php',
403
-        'OCA\\DAV\\Paginate\\PaginateCache' => __DIR__ . '/..' . '/../lib/Paginate/PaginateCache.php',
404
-        'OCA\\DAV\\Paginate\\PaginatePlugin' => __DIR__ . '/..' . '/../lib/Paginate/PaginatePlugin.php',
405
-        'OCA\\DAV\\Profiler\\ProfilerPlugin' => __DIR__ . '/..' . '/../lib/Profiler/ProfilerPlugin.php',
406
-        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningNode.php',
407
-        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => __DIR__ . '/..' . '/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
408
-        'OCA\\DAV\\ResponseDefinitions' => __DIR__ . '/..' . '/../lib/ResponseDefinitions.php',
409
-        'OCA\\DAV\\RootCollection' => __DIR__ . '/..' . '/../lib/RootCollection.php',
410
-        'OCA\\DAV\\Search\\ACalendarSearchProvider' => __DIR__ . '/..' . '/../lib/Search/ACalendarSearchProvider.php',
411
-        'OCA\\DAV\\Search\\ContactsSearchProvider' => __DIR__ . '/..' . '/../lib/Search/ContactsSearchProvider.php',
412
-        'OCA\\DAV\\Search\\EventsSearchProvider' => __DIR__ . '/..' . '/../lib/Search/EventsSearchProvider.php',
413
-        'OCA\\DAV\\Search\\TasksSearchProvider' => __DIR__ . '/..' . '/../lib/Search/TasksSearchProvider.php',
414
-        'OCA\\DAV\\Server' => __DIR__ . '/..' . '/../lib/Server.php',
415
-        'OCA\\DAV\\ServerFactory' => __DIR__ . '/..' . '/../lib/ServerFactory.php',
416
-        'OCA\\DAV\\Service\\ASyncService' => __DIR__ . '/..' . '/../lib/Service/ASyncService.php',
417
-        'OCA\\DAV\\Service\\AbsenceService' => __DIR__ . '/..' . '/../lib/Service/AbsenceService.php',
418
-        'OCA\\DAV\\Service\\ExampleContactService' => __DIR__ . '/..' . '/../lib/Service/ExampleContactService.php',
419
-        'OCA\\DAV\\Service\\ExampleEventService' => __DIR__ . '/..' . '/../lib/Service/ExampleEventService.php',
420
-        'OCA\\DAV\\Settings\\Admin\\SystemAddressBookSettings' => __DIR__ . '/..' . '/../lib/Settings/Admin/SystemAddressBookSettings.php',
421
-        'OCA\\DAV\\Settings\\AvailabilitySettings' => __DIR__ . '/..' . '/../lib/Settings/AvailabilitySettings.php',
422
-        'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__ . '/..' . '/../lib/Settings/CalDAVSettings.php',
423
-        'OCA\\DAV\\Settings\\ExampleContentSettings' => __DIR__ . '/..' . '/../lib/Settings/ExampleContentSettings.php',
424
-        'OCA\\DAV\\SetupChecks\\NeedsSystemAddressBookSync' => __DIR__ . '/..' . '/../lib/SetupChecks/NeedsSystemAddressBookSync.php',
425
-        'OCA\\DAV\\SetupChecks\\WebdavEndpoint' => __DIR__ . '/..' . '/../lib/SetupChecks/WebdavEndpoint.php',
426
-        'OCA\\DAV\\Storage\\PublicOwnerWrapper' => __DIR__ . '/..' . '/../lib/Storage/PublicOwnerWrapper.php',
427
-        'OCA\\DAV\\Storage\\PublicShareWrapper' => __DIR__ . '/..' . '/../lib/Storage/PublicShareWrapper.php',
428
-        'OCA\\DAV\\SystemTag\\SystemTagList' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagList.php',
429
-        'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagMappingNode.php',
430
-        'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagNode.php',
431
-        'OCA\\DAV\\SystemTag\\SystemTagObjectType' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagObjectType.php',
432
-        'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagPlugin.php',
433
-        'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsByIdCollection.php',
434
-        'OCA\\DAV\\SystemTag\\SystemTagsInUseCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsInUseCollection.php',
435
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectList' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectList.php',
436
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
437
-        'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
438
-        'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsRelationsCollection.php',
439
-        'OCA\\DAV\\Traits\\PrincipalProxyTrait' => __DIR__ . '/..' . '/../lib/Traits/PrincipalProxyTrait.php',
440
-        'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__ . '/..' . '/../lib/Upload/AssemblyStream.php',
441
-        'OCA\\DAV\\Upload\\ChunkingPlugin' => __DIR__ . '/..' . '/../lib/Upload/ChunkingPlugin.php',
442
-        'OCA\\DAV\\Upload\\ChunkingV2Plugin' => __DIR__ . '/..' . '/../lib/Upload/ChunkingV2Plugin.php',
443
-        'OCA\\DAV\\Upload\\CleanupService' => __DIR__ . '/..' . '/../lib/Upload/CleanupService.php',
444
-        'OCA\\DAV\\Upload\\FutureFile' => __DIR__ . '/..' . '/../lib/Upload/FutureFile.php',
445
-        'OCA\\DAV\\Upload\\PartFile' => __DIR__ . '/..' . '/../lib/Upload/PartFile.php',
446
-        'OCA\\DAV\\Upload\\RootCollection' => __DIR__ . '/..' . '/../lib/Upload/RootCollection.php',
447
-        'OCA\\DAV\\Upload\\UploadAutoMkcolPlugin' => __DIR__ . '/..' . '/../lib/Upload/UploadAutoMkcolPlugin.php',
448
-        'OCA\\DAV\\Upload\\UploadFile' => __DIR__ . '/..' . '/../lib/Upload/UploadFile.php',
449
-        'OCA\\DAV\\Upload\\UploadFolder' => __DIR__ . '/..' . '/../lib/Upload/UploadFolder.php',
450
-        'OCA\\DAV\\Upload\\UploadHome' => __DIR__ . '/..' . '/../lib/Upload/UploadHome.php',
451
-        'OCA\\DAV\\UserMigration\\CalendarMigrator' => __DIR__ . '/..' . '/../lib/UserMigration/CalendarMigrator.php',
452
-        'OCA\\DAV\\UserMigration\\CalendarMigratorException' => __DIR__ . '/..' . '/../lib/UserMigration/CalendarMigratorException.php',
453
-        'OCA\\DAV\\UserMigration\\ContactsMigrator' => __DIR__ . '/..' . '/../lib/UserMigration/ContactsMigrator.php',
454
-        'OCA\\DAV\\UserMigration\\ContactsMigratorException' => __DIR__ . '/..' . '/../lib/UserMigration/ContactsMigratorException.php',
455
-        'OCA\\DAV\\UserMigration\\InvalidAddressBookException' => __DIR__ . '/..' . '/../lib/UserMigration/InvalidAddressBookException.php',
456
-        'OCA\\DAV\\UserMigration\\InvalidCalendarException' => __DIR__ . '/..' . '/../lib/UserMigration/InvalidCalendarException.php',
23
+    public static $classMap = array(
24
+        'Composer\\InstalledVersions' => __DIR__.'/..'.'/composer/InstalledVersions.php',
25
+        'OCA\\DAV\\AppInfo\\Application' => __DIR__.'/..'.'/../lib/AppInfo/Application.php',
26
+        'OCA\\DAV\\AppInfo\\PluginManager' => __DIR__.'/..'.'/../lib/AppInfo/PluginManager.php',
27
+        'OCA\\DAV\\Avatars\\AvatarHome' => __DIR__.'/..'.'/../lib/Avatars/AvatarHome.php',
28
+        'OCA\\DAV\\Avatars\\AvatarNode' => __DIR__.'/..'.'/../lib/Avatars/AvatarNode.php',
29
+        'OCA\\DAV\\Avatars\\RootCollection' => __DIR__.'/..'.'/../lib/Avatars/RootCollection.php',
30
+        'OCA\\DAV\\BackgroundJob\\BuildReminderIndexBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/BuildReminderIndexBackgroundJob.php',
31
+        'OCA\\DAV\\BackgroundJob\\CalendarRetentionJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CalendarRetentionJob.php',
32
+        'OCA\\DAV\\BackgroundJob\\CleanupDirectLinksJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CleanupDirectLinksJob.php',
33
+        'OCA\\DAV\\BackgroundJob\\CleanupInvitationTokenJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CleanupInvitationTokenJob.php',
34
+        'OCA\\DAV\\BackgroundJob\\CleanupOrphanedChildrenJob' => __DIR__.'/..'.'/../lib/BackgroundJob/CleanupOrphanedChildrenJob.php',
35
+        'OCA\\DAV\\BackgroundJob\\DeleteOutdatedSchedulingObjects' => __DIR__.'/..'.'/../lib/BackgroundJob/DeleteOutdatedSchedulingObjects.php',
36
+        'OCA\\DAV\\BackgroundJob\\EventReminderJob' => __DIR__.'/..'.'/../lib/BackgroundJob/EventReminderJob.php',
37
+        'OCA\\DAV\\BackgroundJob\\FederatedCalendarPeriodicSyncJob' => __DIR__.'/..'.'/../lib/BackgroundJob/FederatedCalendarPeriodicSyncJob.php',
38
+        'OCA\\DAV\\BackgroundJob\\FederatedCalendarSyncJob' => __DIR__.'/..'.'/../lib/BackgroundJob/FederatedCalendarSyncJob.php',
39
+        'OCA\\DAV\\BackgroundJob\\GenerateBirthdayCalendarBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/GenerateBirthdayCalendarBackgroundJob.php',
40
+        'OCA\\DAV\\BackgroundJob\\OutOfOfficeEventDispatcherJob' => __DIR__.'/..'.'/../lib/BackgroundJob/OutOfOfficeEventDispatcherJob.php',
41
+        'OCA\\DAV\\BackgroundJob\\PruneOutdatedSyncTokensJob' => __DIR__.'/..'.'/../lib/BackgroundJob/PruneOutdatedSyncTokensJob.php',
42
+        'OCA\\DAV\\BackgroundJob\\RefreshWebcalJob' => __DIR__.'/..'.'/../lib/BackgroundJob/RefreshWebcalJob.php',
43
+        'OCA\\DAV\\BackgroundJob\\RegisterRegenerateBirthdayCalendars' => __DIR__.'/..'.'/../lib/BackgroundJob/RegisterRegenerateBirthdayCalendars.php',
44
+        'OCA\\DAV\\BackgroundJob\\UpdateCalendarResourcesRoomsBackgroundJob' => __DIR__.'/..'.'/../lib/BackgroundJob/UpdateCalendarResourcesRoomsBackgroundJob.php',
45
+        'OCA\\DAV\\BackgroundJob\\UploadCleanup' => __DIR__.'/..'.'/../lib/BackgroundJob/UploadCleanup.php',
46
+        'OCA\\DAV\\BackgroundJob\\UserStatusAutomation' => __DIR__.'/..'.'/../lib/BackgroundJob/UserStatusAutomation.php',
47
+        'OCA\\DAV\\BulkUpload\\BulkUploadPlugin' => __DIR__.'/..'.'/../lib/BulkUpload/BulkUploadPlugin.php',
48
+        'OCA\\DAV\\BulkUpload\\MultipartRequestParser' => __DIR__.'/..'.'/../lib/BulkUpload/MultipartRequestParser.php',
49
+        'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Backend.php',
50
+        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Filter/Calendar.php',
51
+        'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Filter/Todo.php',
52
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Base.php',
53
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Calendar.php',
54
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Event.php',
55
+        'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Provider/Todo.php',
56
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\CalDAVSetting' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/CalDAVSetting.php',
57
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Calendar.php',
58
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Event.php',
59
+        'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__.'/..'.'/../lib/CalDAV/Activity/Setting/Todo.php',
60
+        'OCA\\DAV\\CalDAV\\AppCalendar\\AppCalendar' => __DIR__.'/..'.'/../lib/CalDAV/AppCalendar/AppCalendar.php',
61
+        'OCA\\DAV\\CalDAV\\AppCalendar\\AppCalendarPlugin' => __DIR__.'/..'.'/../lib/CalDAV/AppCalendar/AppCalendarPlugin.php',
62
+        'OCA\\DAV\\CalDAV\\AppCalendar\\CalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/AppCalendar/CalendarObject.php',
63
+        'OCA\\DAV\\CalDAV\\Auth\\CustomPrincipalPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Auth/CustomPrincipalPlugin.php',
64
+        'OCA\\DAV\\CalDAV\\Auth\\PublicPrincipalPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Auth/PublicPrincipalPlugin.php',
65
+        'OCA\\DAV\\CalDAV\\BirthdayCalendar\\EnablePlugin' => __DIR__.'/..'.'/../lib/CalDAV/BirthdayCalendar/EnablePlugin.php',
66
+        'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__.'/..'.'/../lib/CalDAV/BirthdayService.php',
67
+        'OCA\\DAV\\CalDAV\\CachedSubscription' => __DIR__.'/..'.'/../lib/CalDAV/CachedSubscription.php',
68
+        'OCA\\DAV\\CalDAV\\CachedSubscriptionImpl' => __DIR__.'/..'.'/../lib/CalDAV/CachedSubscriptionImpl.php',
69
+        'OCA\\DAV\\CalDAV\\CachedSubscriptionObject' => __DIR__.'/..'.'/../lib/CalDAV/CachedSubscriptionObject.php',
70
+        'OCA\\DAV\\CalDAV\\CachedSubscriptionProvider' => __DIR__.'/..'.'/../lib/CalDAV/CachedSubscriptionProvider.php',
71
+        'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__.'/..'.'/../lib/CalDAV/CalDavBackend.php',
72
+        'OCA\\DAV\\CalDAV\\Calendar' => __DIR__.'/..'.'/../lib/CalDAV/Calendar.php',
73
+        'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__.'/..'.'/../lib/CalDAV/CalendarHome.php',
74
+        'OCA\\DAV\\CalDAV\\CalendarImpl' => __DIR__.'/..'.'/../lib/CalDAV/CalendarImpl.php',
75
+        'OCA\\DAV\\CalDAV\\CalendarManager' => __DIR__.'/..'.'/../lib/CalDAV/CalendarManager.php',
76
+        'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/CalendarObject.php',
77
+        'OCA\\DAV\\CalDAV\\CalendarProvider' => __DIR__.'/..'.'/../lib/CalDAV/CalendarProvider.php',
78
+        'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__.'/..'.'/../lib/CalDAV/CalendarRoot.php',
79
+        'OCA\\DAV\\CalDAV\\DefaultCalendarValidator' => __DIR__.'/..'.'/../lib/CalDAV/DefaultCalendarValidator.php',
80
+        'OCA\\DAV\\CalDAV\\EmbeddedCalDavServer' => __DIR__.'/..'.'/../lib/CalDAV/EmbeddedCalDavServer.php',
81
+        'OCA\\DAV\\CalDAV\\EventComparisonService' => __DIR__.'/..'.'/../lib/CalDAV/EventComparisonService.php',
82
+        'OCA\\DAV\\CalDAV\\EventReader' => __DIR__.'/..'.'/../lib/CalDAV/EventReader.php',
83
+        'OCA\\DAV\\CalDAV\\EventReaderRDate' => __DIR__.'/..'.'/../lib/CalDAV/EventReaderRDate.php',
84
+        'OCA\\DAV\\CalDAV\\EventReaderRRule' => __DIR__.'/..'.'/../lib/CalDAV/EventReaderRRule.php',
85
+        'OCA\\DAV\\CalDAV\\Export\\ExportService' => __DIR__.'/..'.'/../lib/CalDAV/Export/ExportService.php',
86
+        'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationConfig' => __DIR__.'/..'.'/../lib/CalDAV/Federation/CalendarFederationConfig.php',
87
+        'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationNotifier' => __DIR__.'/..'.'/../lib/CalDAV/Federation/CalendarFederationNotifier.php',
88
+        'OCA\\DAV\\CalDAV\\Federation\\CalendarFederationProvider' => __DIR__.'/..'.'/../lib/CalDAV/Federation/CalendarFederationProvider.php',
89
+        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendar' => __DIR__.'/..'.'/../lib/CalDAV/Federation/FederatedCalendar.php',
90
+        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarAuth' => __DIR__.'/..'.'/../lib/CalDAV/Federation/FederatedCalendarAuth.php',
91
+        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarEntity' => __DIR__.'/..'.'/../lib/CalDAV/Federation/FederatedCalendarEntity.php',
92
+        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarFactory' => __DIR__.'/..'.'/../lib/CalDAV/Federation/FederatedCalendarFactory.php',
93
+        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarImpl' => __DIR__.'/..'.'/../lib/CalDAV/Federation/FederatedCalendarImpl.php',
94
+        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarMapper' => __DIR__.'/..'.'/../lib/CalDAV/Federation/FederatedCalendarMapper.php',
95
+        'OCA\\DAV\\CalDAV\\Federation\\FederatedCalendarSyncService' => __DIR__.'/..'.'/../lib/CalDAV/Federation/FederatedCalendarSyncService.php',
96
+        'OCA\\DAV\\CalDAV\\Federation\\FederationSharingService' => __DIR__.'/..'.'/../lib/CalDAV/Federation/FederationSharingService.php',
97
+        'OCA\\DAV\\CalDAV\\Federation\\Protocol\\CalendarFederationProtocolV1' => __DIR__.'/..'.'/../lib/CalDAV/Federation/Protocol/CalendarFederationProtocolV1.php',
98
+        'OCA\\DAV\\CalDAV\\Federation\\Protocol\\CalendarProtocolParseException' => __DIR__.'/..'.'/../lib/CalDAV/Federation/Protocol/CalendarProtocolParseException.php',
99
+        'OCA\\DAV\\CalDAV\\Federation\\Protocol\\ICalendarFederationProtocol' => __DIR__.'/..'.'/../lib/CalDAV/Federation/Protocol/ICalendarFederationProtocol.php',
100
+        'OCA\\DAV\\CalDAV\\Federation\\RemoteUserCalendarHome' => __DIR__.'/..'.'/../lib/CalDAV/Federation/RemoteUserCalendarHome.php',
101
+        'OCA\\DAV\\CalDAV\\FreeBusy\\FreeBusyGenerator' => __DIR__.'/..'.'/../lib/CalDAV/FreeBusy/FreeBusyGenerator.php',
102
+        'OCA\\DAV\\CalDAV\\ICSExportPlugin\\ICSExportPlugin' => __DIR__.'/..'.'/../lib/CalDAV/ICSExportPlugin/ICSExportPlugin.php',
103
+        'OCA\\DAV\\CalDAV\\IRestorable' => __DIR__.'/..'.'/../lib/CalDAV/IRestorable.php',
104
+        'OCA\\DAV\\CalDAV\\Import\\ImportService' => __DIR__.'/..'.'/../lib/CalDAV/Import/ImportService.php',
105
+        'OCA\\DAV\\CalDAV\\Import\\TextImporter' => __DIR__.'/..'.'/../lib/CalDAV/Import/TextImporter.php',
106
+        'OCA\\DAV\\CalDAV\\Import\\XmlImporter' => __DIR__.'/..'.'/../lib/CalDAV/Import/XmlImporter.php',
107
+        'OCA\\DAV\\CalDAV\\Integration\\ExternalCalendar' => __DIR__.'/..'.'/../lib/CalDAV/Integration/ExternalCalendar.php',
108
+        'OCA\\DAV\\CalDAV\\Integration\\ICalendarProvider' => __DIR__.'/..'.'/../lib/CalDAV/Integration/ICalendarProvider.php',
109
+        'OCA\\DAV\\CalDAV\\InvitationResponse\\InvitationResponseServer' => __DIR__.'/..'.'/../lib/CalDAV/InvitationResponse/InvitationResponseServer.php',
110
+        'OCA\\DAV\\CalDAV\\Outbox' => __DIR__.'/..'.'/../lib/CalDAV/Outbox.php',
111
+        'OCA\\DAV\\CalDAV\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Plugin.php',
112
+        'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__.'/..'.'/../lib/CalDAV/Principal/Collection.php',
113
+        'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__.'/..'.'/../lib/CalDAV/Principal/User.php',
114
+        'OCA\\DAV\\CalDAV\\Proxy\\Proxy' => __DIR__.'/..'.'/../lib/CalDAV/Proxy/Proxy.php',
115
+        'OCA\\DAV\\CalDAV\\Proxy\\ProxyMapper' => __DIR__.'/..'.'/../lib/CalDAV/Proxy/ProxyMapper.php',
116
+        'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendar.php',
117
+        'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendarObject.php',
118
+        'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__.'/..'.'/../lib/CalDAV/PublicCalendarRoot.php',
119
+        'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Publishing/PublishPlugin.php',
120
+        'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__.'/..'.'/../lib/CalDAV/Publishing/Xml/Publisher.php',
121
+        'OCA\\DAV\\CalDAV\\Reminder\\Backend' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/Backend.php',
122
+        'OCA\\DAV\\CalDAV\\Reminder\\INotificationProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/INotificationProvider.php',
123
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProviderManager' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProviderManager.php',
124
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AbstractProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/AbstractProvider.php',
125
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\AudioProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/AudioProvider.php',
126
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\EmailProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/EmailProvider.php',
127
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\ProviderNotAvailableException' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/ProviderNotAvailableException.php',
128
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationProvider\\PushProvider' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationProvider/PushProvider.php',
129
+        'OCA\\DAV\\CalDAV\\Reminder\\NotificationTypeDoesNotExistException' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/NotificationTypeDoesNotExistException.php',
130
+        'OCA\\DAV\\CalDAV\\Reminder\\Notifier' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/Notifier.php',
131
+        'OCA\\DAV\\CalDAV\\Reminder\\ReminderService' => __DIR__.'/..'.'/../lib/CalDAV/Reminder/ReminderService.php',
132
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\AbstractPrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php',
133
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\ResourcePrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/ResourcePrincipalBackend.php',
134
+        'OCA\\DAV\\CalDAV\\ResourceBooking\\RoomPrincipalBackend' => __DIR__.'/..'.'/../lib/CalDAV/ResourceBooking/RoomPrincipalBackend.php',
135
+        'OCA\\DAV\\CalDAV\\RetentionService' => __DIR__.'/..'.'/../lib/CalDAV/RetentionService.php',
136
+        'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/IMipPlugin.php',
137
+        'OCA\\DAV\\CalDAV\\Schedule\\IMipService' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/IMipService.php',
138
+        'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Schedule/Plugin.php',
139
+        'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Search/SearchPlugin.php',
140
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/CompFilter.php',
141
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php',
142
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php',
143
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php',
144
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/PropFilter.php',
145
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php',
146
+        'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__.'/..'.'/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php',
147
+        'OCA\\DAV\\CalDAV\\Security\\RateLimitingPlugin' => __DIR__.'/..'.'/../lib/CalDAV/Security/RateLimitingPlugin.php',
148
+        'OCA\\DAV\\CalDAV\\Sharing\\Backend' => __DIR__.'/..'.'/../lib/CalDAV/Sharing/Backend.php',
149
+        'OCA\\DAV\\CalDAV\\Sharing\\Service' => __DIR__.'/..'.'/../lib/CalDAV/Sharing/Service.php',
150
+        'OCA\\DAV\\CalDAV\\Status\\StatusService' => __DIR__.'/..'.'/../lib/CalDAV/Status/StatusService.php',
151
+        'OCA\\DAV\\CalDAV\\SyncService' => __DIR__.'/..'.'/../lib/CalDAV/SyncService.php',
152
+        'OCA\\DAV\\CalDAV\\SyncServiceResult' => __DIR__.'/..'.'/../lib/CalDAV/SyncServiceResult.php',
153
+        'OCA\\DAV\\CalDAV\\TimeZoneFactory' => __DIR__.'/..'.'/../lib/CalDAV/TimeZoneFactory.php',
154
+        'OCA\\DAV\\CalDAV\\TimezoneService' => __DIR__.'/..'.'/../lib/CalDAV/TimezoneService.php',
155
+        'OCA\\DAV\\CalDAV\\TipBroker' => __DIR__.'/..'.'/../lib/CalDAV/TipBroker.php',
156
+        'OCA\\DAV\\CalDAV\\Trashbin\\DeletedCalendarObject' => __DIR__.'/..'.'/../lib/CalDAV/Trashbin/DeletedCalendarObject.php',
157
+        'OCA\\DAV\\CalDAV\\Trashbin\\DeletedCalendarObjectsCollection' => __DIR__.'/..'.'/../lib/CalDAV/Trashbin/DeletedCalendarObjectsCollection.php',
158
+        'OCA\\DAV\\CalDAV\\Trashbin\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/Trashbin/Plugin.php',
159
+        'OCA\\DAV\\CalDAV\\Trashbin\\RestoreTarget' => __DIR__.'/..'.'/../lib/CalDAV/Trashbin/RestoreTarget.php',
160
+        'OCA\\DAV\\CalDAV\\Trashbin\\TrashbinHome' => __DIR__.'/..'.'/../lib/CalDAV/Trashbin/TrashbinHome.php',
161
+        'OCA\\DAV\\CalDAV\\UpcomingEvent' => __DIR__.'/..'.'/../lib/CalDAV/UpcomingEvent.php',
162
+        'OCA\\DAV\\CalDAV\\UpcomingEventsService' => __DIR__.'/..'.'/../lib/CalDAV/UpcomingEventsService.php',
163
+        'OCA\\DAV\\CalDAV\\Validation\\CalDavValidatePlugin' => __DIR__.'/..'.'/../lib/CalDAV/Validation/CalDavValidatePlugin.php',
164
+        'OCA\\DAV\\CalDAV\\WebcalCaching\\Connection' => __DIR__.'/..'.'/../lib/CalDAV/WebcalCaching/Connection.php',
165
+        'OCA\\DAV\\CalDAV\\WebcalCaching\\Plugin' => __DIR__.'/..'.'/../lib/CalDAV/WebcalCaching/Plugin.php',
166
+        'OCA\\DAV\\CalDAV\\WebcalCaching\\RefreshWebcalService' => __DIR__.'/..'.'/../lib/CalDAV/WebcalCaching/RefreshWebcalService.php',
167
+        'OCA\\DAV\\Capabilities' => __DIR__.'/..'.'/../lib/Capabilities.php',
168
+        'OCA\\DAV\\CardDAV\\Activity\\Backend' => __DIR__.'/..'.'/../lib/CardDAV/Activity/Backend.php',
169
+        'OCA\\DAV\\CardDAV\\Activity\\Filter' => __DIR__.'/..'.'/../lib/CardDAV/Activity/Filter.php',
170
+        'OCA\\DAV\\CardDAV\\Activity\\Provider\\Addressbook' => __DIR__.'/..'.'/../lib/CardDAV/Activity/Provider/Addressbook.php',
171
+        'OCA\\DAV\\CardDAV\\Activity\\Provider\\Base' => __DIR__.'/..'.'/../lib/CardDAV/Activity/Provider/Base.php',
172
+        'OCA\\DAV\\CardDAV\\Activity\\Provider\\Card' => __DIR__.'/..'.'/../lib/CardDAV/Activity/Provider/Card.php',
173
+        'OCA\\DAV\\CardDAV\\Activity\\Setting' => __DIR__.'/..'.'/../lib/CardDAV/Activity/Setting.php',
174
+        'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__.'/..'.'/../lib/CardDAV/AddressBook.php',
175
+        'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__.'/..'.'/../lib/CardDAV/AddressBookImpl.php',
176
+        'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__.'/..'.'/../lib/CardDAV/AddressBookRoot.php',
177
+        'OCA\\DAV\\CardDAV\\Card' => __DIR__.'/..'.'/../lib/CardDAV/Card.php',
178
+        'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__.'/..'.'/../lib/CardDAV/CardDavBackend.php',
179
+        'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__.'/..'.'/../lib/CardDAV/ContactsManager.php',
180
+        'OCA\\DAV\\CardDAV\\Converter' => __DIR__.'/..'.'/../lib/CardDAV/Converter.php',
181
+        'OCA\\DAV\\CardDAV\\HasPhotoPlugin' => __DIR__.'/..'.'/../lib/CardDAV/HasPhotoPlugin.php',
182
+        'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__.'/..'.'/../lib/CardDAV/ImageExportPlugin.php',
183
+        'OCA\\DAV\\CardDAV\\Integration\\ExternalAddressBook' => __DIR__.'/..'.'/../lib/CardDAV/Integration/ExternalAddressBook.php',
184
+        'OCA\\DAV\\CardDAV\\Integration\\IAddressBookProvider' => __DIR__.'/..'.'/../lib/CardDAV/Integration/IAddressBookProvider.php',
185
+        'OCA\\DAV\\CardDAV\\MultiGetExportPlugin' => __DIR__.'/..'.'/../lib/CardDAV/MultiGetExportPlugin.php',
186
+        'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__.'/..'.'/../lib/CardDAV/PhotoCache.php',
187
+        'OCA\\DAV\\CardDAV\\Plugin' => __DIR__.'/..'.'/../lib/CardDAV/Plugin.php',
188
+        'OCA\\DAV\\CardDAV\\Security\\CardDavRateLimitingPlugin' => __DIR__.'/..'.'/../lib/CardDAV/Security/CardDavRateLimitingPlugin.php',
189
+        'OCA\\DAV\\CardDAV\\Sharing\\Backend' => __DIR__.'/..'.'/../lib/CardDAV/Sharing/Backend.php',
190
+        'OCA\\DAV\\CardDAV\\Sharing\\Service' => __DIR__.'/..'.'/../lib/CardDAV/Sharing/Service.php',
191
+        'OCA\\DAV\\CardDAV\\SyncService' => __DIR__.'/..'.'/../lib/CardDAV/SyncService.php',
192
+        'OCA\\DAV\\CardDAV\\SystemAddressbook' => __DIR__.'/..'.'/../lib/CardDAV/SystemAddressbook.php',
193
+        'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__.'/..'.'/../lib/CardDAV/UserAddressBooks.php',
194
+        'OCA\\DAV\\CardDAV\\Validation\\CardDavValidatePlugin' => __DIR__.'/..'.'/../lib/CardDAV/Validation/CardDavValidatePlugin.php',
195
+        'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__.'/..'.'/../lib/CardDAV/Xml/Groups.php',
196
+        'OCA\\DAV\\Command\\ClearCalendarUnshares' => __DIR__.'/..'.'/../lib/Command/ClearCalendarUnshares.php',
197
+        'OCA\\DAV\\Command\\ClearContactsPhotoCache' => __DIR__.'/..'.'/../lib/Command/ClearContactsPhotoCache.php',
198
+        'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__.'/..'.'/../lib/Command/CreateAddressBook.php',
199
+        'OCA\\DAV\\Command\\CreateCalendar' => __DIR__.'/..'.'/../lib/Command/CreateCalendar.php',
200
+        'OCA\\DAV\\Command\\CreateSubscription' => __DIR__.'/..'.'/../lib/Command/CreateSubscription.php',
201
+        'OCA\\DAV\\Command\\DeleteCalendar' => __DIR__.'/..'.'/../lib/Command/DeleteCalendar.php',
202
+        'OCA\\DAV\\Command\\DeleteSubscription' => __DIR__.'/..'.'/../lib/Command/DeleteSubscription.php',
203
+        'OCA\\DAV\\Command\\ExportCalendar' => __DIR__.'/..'.'/../lib/Command/ExportCalendar.php',
204
+        'OCA\\DAV\\Command\\FixCalendarSyncCommand' => __DIR__.'/..'.'/../lib/Command/FixCalendarSyncCommand.php',
205
+        'OCA\\DAV\\Command\\GetAbsenceCommand' => __DIR__.'/..'.'/../lib/Command/GetAbsenceCommand.php',
206
+        'OCA\\DAV\\Command\\ImportCalendar' => __DIR__.'/..'.'/../lib/Command/ImportCalendar.php',
207
+        'OCA\\DAV\\Command\\ListAddressbooks' => __DIR__.'/..'.'/../lib/Command/ListAddressbooks.php',
208
+        'OCA\\DAV\\Command\\ListCalendarShares' => __DIR__.'/..'.'/../lib/Command/ListCalendarShares.php',
209
+        'OCA\\DAV\\Command\\ListCalendars' => __DIR__.'/..'.'/../lib/Command/ListCalendars.php',
210
+        'OCA\\DAV\\Command\\ListSubscriptions' => __DIR__.'/..'.'/../lib/Command/ListSubscriptions.php',
211
+        'OCA\\DAV\\Command\\MoveCalendar' => __DIR__.'/..'.'/../lib/Command/MoveCalendar.php',
212
+        'OCA\\DAV\\Command\\RemoveInvalidShares' => __DIR__.'/..'.'/../lib/Command/RemoveInvalidShares.php',
213
+        'OCA\\DAV\\Command\\RetentionCleanupCommand' => __DIR__.'/..'.'/../lib/Command/RetentionCleanupCommand.php',
214
+        'OCA\\DAV\\Command\\SendEventReminders' => __DIR__.'/..'.'/../lib/Command/SendEventReminders.php',
215
+        'OCA\\DAV\\Command\\SetAbsenceCommand' => __DIR__.'/..'.'/../lib/Command/SetAbsenceCommand.php',
216
+        'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__.'/..'.'/../lib/Command/SyncBirthdayCalendar.php',
217
+        'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__.'/..'.'/../lib/Command/SyncSystemAddressBook.php',
218
+        'OCA\\DAV\\Comments\\CommentNode' => __DIR__.'/..'.'/../lib/Comments/CommentNode.php',
219
+        'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__.'/..'.'/../lib/Comments/CommentsPlugin.php',
220
+        'OCA\\DAV\\Comments\\EntityCollection' => __DIR__.'/..'.'/../lib/Comments/EntityCollection.php',
221
+        'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__.'/..'.'/../lib/Comments/EntityTypeCollection.php',
222
+        'OCA\\DAV\\Comments\\RootCollection' => __DIR__.'/..'.'/../lib/Comments/RootCollection.php',
223
+        'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__.'/..'.'/../lib/Connector/LegacyDAVACL.php',
224
+        'OCA\\DAV\\Connector\\LegacyPublicAuth' => __DIR__.'/..'.'/../lib/Connector/LegacyPublicAuth.php',
225
+        'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',
226
+        'OCA\\DAV\\Connector\\Sabre\\AppleQuirksPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/AppleQuirksPlugin.php',
227
+        'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__.'/..'.'/../lib/Connector/Sabre/Auth.php',
228
+        'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__.'/..'.'/../lib/Connector/Sabre/BearerAuth.php',
229
+        'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/BlockLegacyClientPlugin.php',
230
+        'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__.'/..'.'/../lib/Connector/Sabre/CachingTree.php',
231
+        'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ChecksumList.php',
232
+        'OCA\\DAV\\Connector\\Sabre\\ChecksumUpdatePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/ChecksumUpdatePlugin.php',
233
+        'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/CommentPropertiesPlugin.php',
234
+        'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php',
235
+        'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/DavAclPlugin.php',
236
+        'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__.'/..'.'/../lib/Connector/Sabre/Directory.php',
237
+        'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/DummyGetResponsePlugin.php',
238
+        'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/ExceptionLoggerPlugin.php',
239
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\BadGateway' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/BadGateway.php',
240
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/EntityTooLarge.php',
241
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/FileLocked.php',
242
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/Forbidden.php',
243
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/InvalidPath.php',
244
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php',
245
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\TooManyRequests' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/TooManyRequests.php',
246
+        'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__.'/..'.'/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php',
247
+        'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FakeLockerPlugin.php',
248
+        'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__.'/..'.'/../lib/Connector/Sabre/File.php',
249
+        'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FilesPlugin.php',
250
+        'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/FilesReportPlugin.php',
251
+        'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/LockPlugin.php',
252
+        'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/MaintenancePlugin.php',
253
+        'OCA\\DAV\\Connector\\Sabre\\MtimeSanitizer' => __DIR__.'/..'.'/../lib/Connector/Sabre/MtimeSanitizer.php',
254
+        'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__.'/..'.'/../lib/Connector/Sabre/Node.php',
255
+        'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__.'/..'.'/../lib/Connector/Sabre/ObjectTree.php',
256
+        'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__.'/..'.'/../lib/Connector/Sabre/Principal.php',
257
+        'OCA\\DAV\\Connector\\Sabre\\PropFindMonitorPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/PropFindMonitorPlugin.php',
258
+        'OCA\\DAV\\Connector\\Sabre\\PropFindPreloadNotifyPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/PropFindPreloadNotifyPlugin.php',
259
+        'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/PropfindCompressionPlugin.php',
260
+        'OCA\\DAV\\Connector\\Sabre\\PublicAuth' => __DIR__.'/..'.'/../lib/Connector/Sabre/PublicAuth.php',
261
+        'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/QuotaPlugin.php',
262
+        'OCA\\DAV\\Connector\\Sabre\\RequestIdHeaderPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/RequestIdHeaderPlugin.php',
263
+        'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__.'/..'.'/../lib/Connector/Sabre/Server.php',
264
+        'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__.'/..'.'/../lib/Connector/Sabre/ServerFactory.php',
265
+        'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ShareTypeList.php',
266
+        'OCA\\DAV\\Connector\\Sabre\\ShareeList' => __DIR__.'/..'.'/../lib/Connector/Sabre/ShareeList.php',
267
+        'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/SharesPlugin.php',
268
+        'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__.'/..'.'/../lib/Connector/Sabre/TagList.php',
269
+        'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/TagsPlugin.php',
270
+        'OCA\\DAV\\Connector\\Sabre\\ZipFolderPlugin' => __DIR__.'/..'.'/../lib/Connector/Sabre/ZipFolderPlugin.php',
271
+        'OCA\\DAV\\Controller\\BirthdayCalendarController' => __DIR__.'/..'.'/../lib/Controller/BirthdayCalendarController.php',
272
+        'OCA\\DAV\\Controller\\DirectController' => __DIR__.'/..'.'/../lib/Controller/DirectController.php',
273
+        'OCA\\DAV\\Controller\\ExampleContentController' => __DIR__.'/..'.'/../lib/Controller/ExampleContentController.php',
274
+        'OCA\\DAV\\Controller\\InvitationResponseController' => __DIR__.'/..'.'/../lib/Controller/InvitationResponseController.php',
275
+        'OCA\\DAV\\Controller\\OutOfOfficeController' => __DIR__.'/..'.'/../lib/Controller/OutOfOfficeController.php',
276
+        'OCA\\DAV\\Controller\\UpcomingEventsController' => __DIR__.'/..'.'/../lib/Controller/UpcomingEventsController.php',
277
+        'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__.'/..'.'/../lib/DAV/CustomPropertiesBackend.php',
278
+        'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/GroupPrincipalBackend.php',
279
+        'OCA\\DAV\\DAV\\PublicAuth' => __DIR__.'/..'.'/../lib/DAV/PublicAuth.php',
280
+        'OCA\\DAV\\DAV\\RemoteUserPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/RemoteUserPrincipalBackend.php',
281
+        'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__.'/..'.'/../lib/DAV/Sharing/Backend.php',
282
+        'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__.'/..'.'/../lib/DAV/Sharing/IShareable.php',
283
+        'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__.'/..'.'/../lib/DAV/Sharing/Plugin.php',
284
+        'OCA\\DAV\\DAV\\Sharing\\SharingMapper' => __DIR__.'/..'.'/../lib/DAV/Sharing/SharingMapper.php',
285
+        'OCA\\DAV\\DAV\\Sharing\\SharingService' => __DIR__.'/..'.'/../lib/DAV/Sharing/SharingService.php',
286
+        'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__.'/..'.'/../lib/DAV/Sharing/Xml/Invite.php',
287
+        'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__.'/..'.'/../lib/DAV/Sharing/Xml/ShareRequest.php',
288
+        'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__.'/..'.'/../lib/DAV/SystemPrincipalBackend.php',
289
+        'OCA\\DAV\\DAV\\ViewOnlyPlugin' => __DIR__.'/..'.'/../lib/DAV/ViewOnlyPlugin.php',
290
+        'OCA\\DAV\\Db\\Absence' => __DIR__.'/..'.'/../lib/Db/Absence.php',
291
+        'OCA\\DAV\\Db\\AbsenceMapper' => __DIR__.'/..'.'/../lib/Db/AbsenceMapper.php',
292
+        'OCA\\DAV\\Db\\Direct' => __DIR__.'/..'.'/../lib/Db/Direct.php',
293
+        'OCA\\DAV\\Db\\DirectMapper' => __DIR__.'/..'.'/../lib/Db/DirectMapper.php',
294
+        'OCA\\DAV\\Db\\Property' => __DIR__.'/..'.'/../lib/Db/Property.php',
295
+        'OCA\\DAV\\Db\\PropertyMapper' => __DIR__.'/..'.'/../lib/Db/PropertyMapper.php',
296
+        'OCA\\DAV\\Direct\\DirectFile' => __DIR__.'/..'.'/../lib/Direct/DirectFile.php',
297
+        'OCA\\DAV\\Direct\\DirectHome' => __DIR__.'/..'.'/../lib/Direct/DirectHome.php',
298
+        'OCA\\DAV\\Direct\\Server' => __DIR__.'/..'.'/../lib/Direct/Server.php',
299
+        'OCA\\DAV\\Direct\\ServerFactory' => __DIR__.'/..'.'/../lib/Direct/ServerFactory.php',
300
+        'OCA\\DAV\\Events\\AddressBookCreatedEvent' => __DIR__.'/..'.'/../lib/Events/AddressBookCreatedEvent.php',
301
+        'OCA\\DAV\\Events\\AddressBookDeletedEvent' => __DIR__.'/..'.'/../lib/Events/AddressBookDeletedEvent.php',
302
+        'OCA\\DAV\\Events\\AddressBookShareUpdatedEvent' => __DIR__.'/..'.'/../lib/Events/AddressBookShareUpdatedEvent.php',
303
+        'OCA\\DAV\\Events\\AddressBookUpdatedEvent' => __DIR__.'/..'.'/../lib/Events/AddressBookUpdatedEvent.php',
304
+        'OCA\\DAV\\Events\\BeforeFileDirectDownloadedEvent' => __DIR__.'/..'.'/../lib/Events/BeforeFileDirectDownloadedEvent.php',
305
+        'OCA\\DAV\\Events\\CachedCalendarObjectCreatedEvent' => __DIR__.'/..'.'/../lib/Events/CachedCalendarObjectCreatedEvent.php',
306
+        'OCA\\DAV\\Events\\CachedCalendarObjectDeletedEvent' => __DIR__.'/..'.'/../lib/Events/CachedCalendarObjectDeletedEvent.php',
307
+        'OCA\\DAV\\Events\\CachedCalendarObjectUpdatedEvent' => __DIR__.'/..'.'/../lib/Events/CachedCalendarObjectUpdatedEvent.php',
308
+        'OCA\\DAV\\Events\\CalendarCreatedEvent' => __DIR__.'/..'.'/../lib/Events/CalendarCreatedEvent.php',
309
+        'OCA\\DAV\\Events\\CalendarDeletedEvent' => __DIR__.'/..'.'/../lib/Events/CalendarDeletedEvent.php',
310
+        'OCA\\DAV\\Events\\CalendarMovedToTrashEvent' => __DIR__.'/..'.'/../lib/Events/CalendarMovedToTrashEvent.php',
311
+        'OCA\\DAV\\Events\\CalendarPublishedEvent' => __DIR__.'/..'.'/../lib/Events/CalendarPublishedEvent.php',
312
+        'OCA\\DAV\\Events\\CalendarRestoredEvent' => __DIR__.'/..'.'/../lib/Events/CalendarRestoredEvent.php',
313
+        'OCA\\DAV\\Events\\CalendarShareUpdatedEvent' => __DIR__.'/..'.'/../lib/Events/CalendarShareUpdatedEvent.php',
314
+        'OCA\\DAV\\Events\\CalendarUnpublishedEvent' => __DIR__.'/..'.'/../lib/Events/CalendarUnpublishedEvent.php',
315
+        'OCA\\DAV\\Events\\CalendarUpdatedEvent' => __DIR__.'/..'.'/../lib/Events/CalendarUpdatedEvent.php',
316
+        'OCA\\DAV\\Events\\CardCreatedEvent' => __DIR__.'/..'.'/../lib/Events/CardCreatedEvent.php',
317
+        'OCA\\DAV\\Events\\CardDeletedEvent' => __DIR__.'/..'.'/../lib/Events/CardDeletedEvent.php',
318
+        'OCA\\DAV\\Events\\CardMovedEvent' => __DIR__.'/..'.'/../lib/Events/CardMovedEvent.php',
319
+        'OCA\\DAV\\Events\\CardUpdatedEvent' => __DIR__.'/..'.'/../lib/Events/CardUpdatedEvent.php',
320
+        'OCA\\DAV\\Events\\SabrePluginAddEvent' => __DIR__.'/..'.'/../lib/Events/SabrePluginAddEvent.php',
321
+        'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => __DIR__.'/..'.'/../lib/Events/SabrePluginAuthInitEvent.php',
322
+        'OCA\\DAV\\Events\\SubscriptionCreatedEvent' => __DIR__.'/..'.'/../lib/Events/SubscriptionCreatedEvent.php',
323
+        'OCA\\DAV\\Events\\SubscriptionDeletedEvent' => __DIR__.'/..'.'/../lib/Events/SubscriptionDeletedEvent.php',
324
+        'OCA\\DAV\\Events\\SubscriptionUpdatedEvent' => __DIR__.'/..'.'/../lib/Events/SubscriptionUpdatedEvent.php',
325
+        'OCA\\DAV\\Exception\\ExampleEventException' => __DIR__.'/..'.'/../lib/Exception/ExampleEventException.php',
326
+        'OCA\\DAV\\Exception\\ServerMaintenanceMode' => __DIR__.'/..'.'/../lib/Exception/ServerMaintenanceMode.php',
327
+        'OCA\\DAV\\Exception\\UnsupportedLimitOnInitialSyncException' => __DIR__.'/..'.'/../lib/Exception/UnsupportedLimitOnInitialSyncException.php',
328
+        'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__.'/..'.'/../lib/Files/BrowserErrorPagePlugin.php',
329
+        'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__.'/..'.'/../lib/Files/FileSearchBackend.php',
330
+        'OCA\\DAV\\Files\\FilesHome' => __DIR__.'/..'.'/../lib/Files/FilesHome.php',
331
+        'OCA\\DAV\\Files\\LazySearchBackend' => __DIR__.'/..'.'/../lib/Files/LazySearchBackend.php',
332
+        'OCA\\DAV\\Files\\RootCollection' => __DIR__.'/..'.'/../lib/Files/RootCollection.php',
333
+        'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__.'/..'.'/../lib/Files/Sharing/FilesDropPlugin.php',
334
+        'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__.'/..'.'/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
335
+        'OCA\\DAV\\Files\\Sharing\\RootCollection' => __DIR__.'/..'.'/../lib/Files/Sharing/RootCollection.php',
336
+        'OCA\\DAV\\Listener\\ActivityUpdaterListener' => __DIR__.'/..'.'/../lib/Listener/ActivityUpdaterListener.php',
337
+        'OCA\\DAV\\Listener\\AddMissingIndicesListener' => __DIR__.'/..'.'/../lib/Listener/AddMissingIndicesListener.php',
338
+        'OCA\\DAV\\Listener\\AddressbookListener' => __DIR__.'/..'.'/../lib/Listener/AddressbookListener.php',
339
+        'OCA\\DAV\\Listener\\BirthdayListener' => __DIR__.'/..'.'/../lib/Listener/BirthdayListener.php',
340
+        'OCA\\DAV\\Listener\\CalendarContactInteractionListener' => __DIR__.'/..'.'/../lib/Listener/CalendarContactInteractionListener.php',
341
+        'OCA\\DAV\\Listener\\CalendarDeletionDefaultUpdaterListener' => __DIR__.'/..'.'/../lib/Listener/CalendarDeletionDefaultUpdaterListener.php',
342
+        'OCA\\DAV\\Listener\\CalendarFederationNotificationListener' => __DIR__.'/..'.'/../lib/Listener/CalendarFederationNotificationListener.php',
343
+        'OCA\\DAV\\Listener\\CalendarObjectReminderUpdaterListener' => __DIR__.'/..'.'/../lib/Listener/CalendarObjectReminderUpdaterListener.php',
344
+        'OCA\\DAV\\Listener\\CalendarPublicationListener' => __DIR__.'/..'.'/../lib/Listener/CalendarPublicationListener.php',
345
+        'OCA\\DAV\\Listener\\CalendarShareUpdateListener' => __DIR__.'/..'.'/../lib/Listener/CalendarShareUpdateListener.php',
346
+        'OCA\\DAV\\Listener\\CardListener' => __DIR__.'/..'.'/../lib/Listener/CardListener.php',
347
+        'OCA\\DAV\\Listener\\ClearPhotoCacheListener' => __DIR__.'/..'.'/../lib/Listener/ClearPhotoCacheListener.php',
348
+        'OCA\\DAV\\Listener\\DavAdminSettingsListener' => __DIR__.'/..'.'/../lib/Listener/DavAdminSettingsListener.php',
349
+        'OCA\\DAV\\Listener\\OutOfOfficeListener' => __DIR__.'/..'.'/../lib/Listener/OutOfOfficeListener.php',
350
+        'OCA\\DAV\\Listener\\SabrePluginAuthInitListener' => __DIR__.'/..'.'/../lib/Listener/SabrePluginAuthInitListener.php',
351
+        'OCA\\DAV\\Listener\\SubscriptionListener' => __DIR__.'/..'.'/../lib/Listener/SubscriptionListener.php',
352
+        'OCA\\DAV\\Listener\\TrustedServerRemovedListener' => __DIR__.'/..'.'/../lib/Listener/TrustedServerRemovedListener.php',
353
+        'OCA\\DAV\\Listener\\UserEventsListener' => __DIR__.'/..'.'/../lib/Listener/UserEventsListener.php',
354
+        'OCA\\DAV\\Listener\\UserPreferenceListener' => __DIR__.'/..'.'/../lib/Listener/UserPreferenceListener.php',
355
+        'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__.'/..'.'/../lib/Migration/BuildCalendarSearchIndex.php',
356
+        'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__.'/..'.'/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php',
357
+        'OCA\\DAV\\Migration\\BuildSocialSearchIndex' => __DIR__.'/..'.'/../lib/Migration/BuildSocialSearchIndex.php',
358
+        'OCA\\DAV\\Migration\\BuildSocialSearchIndexBackgroundJob' => __DIR__.'/..'.'/../lib/Migration/BuildSocialSearchIndexBackgroundJob.php',
359
+        'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__.'/..'.'/../lib/Migration/CalDAVRemoveEmptyValue.php',
360
+        'OCA\\DAV\\Migration\\ChunkCleanup' => __DIR__.'/..'.'/../lib/Migration/ChunkCleanup.php',
361
+        'OCA\\DAV\\Migration\\CreateSystemAddressBookStep' => __DIR__.'/..'.'/../lib/Migration/CreateSystemAddressBookStep.php',
362
+        'OCA\\DAV\\Migration\\DeleteSchedulingObjects' => __DIR__.'/..'.'/../lib/Migration/DeleteSchedulingObjects.php',
363
+        'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__.'/..'.'/../lib/Migration/FixBirthdayCalendarComponent.php',
364
+        'OCA\\DAV\\Migration\\RefreshWebcalJobRegistrar' => __DIR__.'/..'.'/../lib/Migration/RefreshWebcalJobRegistrar.php',
365
+        'OCA\\DAV\\Migration\\RegenerateBirthdayCalendars' => __DIR__.'/..'.'/../lib/Migration/RegenerateBirthdayCalendars.php',
366
+        'OCA\\DAV\\Migration\\RegisterBuildReminderIndexBackgroundJob' => __DIR__.'/..'.'/../lib/Migration/RegisterBuildReminderIndexBackgroundJob.php',
367
+        'OCA\\DAV\\Migration\\RegisterUpdateCalendarResourcesRoomBackgroundJob' => __DIR__.'/..'.'/../lib/Migration/RegisterUpdateCalendarResourcesRoomBackgroundJob.php',
368
+        'OCA\\DAV\\Migration\\RemoveClassifiedEventActivity' => __DIR__.'/..'.'/../lib/Migration/RemoveClassifiedEventActivity.php',
369
+        'OCA\\DAV\\Migration\\RemoveDeletedUsersCalendarSubscriptions' => __DIR__.'/..'.'/../lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php',
370
+        'OCA\\DAV\\Migration\\RemoveObjectProperties' => __DIR__.'/..'.'/../lib/Migration/RemoveObjectProperties.php',
371
+        'OCA\\DAV\\Migration\\RemoveOrphanEventsAndContacts' => __DIR__.'/..'.'/../lib/Migration/RemoveOrphanEventsAndContacts.php',
372
+        'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170825134824.php',
373
+        'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170919104507.php',
374
+        'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170924124212.php',
375
+        'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__.'/..'.'/../lib/Migration/Version1004Date20170926103422.php',
376
+        'OCA\\DAV\\Migration\\Version1005Date20180413093149' => __DIR__.'/..'.'/../lib/Migration/Version1005Date20180413093149.php',
377
+        'OCA\\DAV\\Migration\\Version1005Date20180530124431' => __DIR__.'/..'.'/../lib/Migration/Version1005Date20180530124431.php',
378
+        'OCA\\DAV\\Migration\\Version1006Date20180619154313' => __DIR__.'/..'.'/../lib/Migration/Version1006Date20180619154313.php',
379
+        'OCA\\DAV\\Migration\\Version1006Date20180628111625' => __DIR__.'/..'.'/../lib/Migration/Version1006Date20180628111625.php',
380
+        'OCA\\DAV\\Migration\\Version1008Date20181030113700' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181030113700.php',
381
+        'OCA\\DAV\\Migration\\Version1008Date20181105104826' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105104826.php',
382
+        'OCA\\DAV\\Migration\\Version1008Date20181105104833' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105104833.php',
383
+        'OCA\\DAV\\Migration\\Version1008Date20181105110300' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105110300.php',
384
+        'OCA\\DAV\\Migration\\Version1008Date20181105112049' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181105112049.php',
385
+        'OCA\\DAV\\Migration\\Version1008Date20181114084440' => __DIR__.'/..'.'/../lib/Migration/Version1008Date20181114084440.php',
386
+        'OCA\\DAV\\Migration\\Version1011Date20190725113607' => __DIR__.'/..'.'/../lib/Migration/Version1011Date20190725113607.php',
387
+        'OCA\\DAV\\Migration\\Version1011Date20190806104428' => __DIR__.'/..'.'/../lib/Migration/Version1011Date20190806104428.php',
388
+        'OCA\\DAV\\Migration\\Version1012Date20190808122342' => __DIR__.'/..'.'/../lib/Migration/Version1012Date20190808122342.php',
389
+        'OCA\\DAV\\Migration\\Version1016Date20201109085907' => __DIR__.'/..'.'/../lib/Migration/Version1016Date20201109085907.php',
390
+        'OCA\\DAV\\Migration\\Version1017Date20210216083742' => __DIR__.'/..'.'/../lib/Migration/Version1017Date20210216083742.php',
391
+        'OCA\\DAV\\Migration\\Version1018Date20210312100735' => __DIR__.'/..'.'/../lib/Migration/Version1018Date20210312100735.php',
392
+        'OCA\\DAV\\Migration\\Version1024Date20211221144219' => __DIR__.'/..'.'/../lib/Migration/Version1024Date20211221144219.php',
393
+        'OCA\\DAV\\Migration\\Version1025Date20240308063933' => __DIR__.'/..'.'/../lib/Migration/Version1025Date20240308063933.php',
394
+        'OCA\\DAV\\Migration\\Version1027Date20230504122946' => __DIR__.'/..'.'/../lib/Migration/Version1027Date20230504122946.php',
395
+        'OCA\\DAV\\Migration\\Version1029Date20221114151721' => __DIR__.'/..'.'/../lib/Migration/Version1029Date20221114151721.php',
396
+        'OCA\\DAV\\Migration\\Version1029Date20231004091403' => __DIR__.'/..'.'/../lib/Migration/Version1029Date20231004091403.php',
397
+        'OCA\\DAV\\Migration\\Version1030Date20240205103243' => __DIR__.'/..'.'/../lib/Migration/Version1030Date20240205103243.php',
398
+        'OCA\\DAV\\Migration\\Version1031Date20240610134258' => __DIR__.'/..'.'/../lib/Migration/Version1031Date20240610134258.php',
399
+        'OCA\\DAV\\Migration\\Version1034Date20250605132605' => __DIR__.'/..'.'/../lib/Migration/Version1034Date20250605132605.php',
400
+        'OCA\\DAV\\Migration\\Version1034Date20250813093701' => __DIR__.'/..'.'/../lib/Migration/Version1034Date20250813093701.php',
401
+        'OCA\\DAV\\Model\\ExampleEvent' => __DIR__.'/..'.'/../lib/Model/ExampleEvent.php',
402
+        'OCA\\DAV\\Paginate\\LimitedCopyIterator' => __DIR__.'/..'.'/../lib/Paginate/LimitedCopyIterator.php',
403
+        'OCA\\DAV\\Paginate\\PaginateCache' => __DIR__.'/..'.'/../lib/Paginate/PaginateCache.php',
404
+        'OCA\\DAV\\Paginate\\PaginatePlugin' => __DIR__.'/..'.'/../lib/Paginate/PaginatePlugin.php',
405
+        'OCA\\DAV\\Profiler\\ProfilerPlugin' => __DIR__.'/..'.'/../lib/Profiler/ProfilerPlugin.php',
406
+        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningNode' => __DIR__.'/..'.'/../lib/Provisioning/Apple/AppleProvisioningNode.php',
407
+        'OCA\\DAV\\Provisioning\\Apple\\AppleProvisioningPlugin' => __DIR__.'/..'.'/../lib/Provisioning/Apple/AppleProvisioningPlugin.php',
408
+        'OCA\\DAV\\ResponseDefinitions' => __DIR__.'/..'.'/../lib/ResponseDefinitions.php',
409
+        'OCA\\DAV\\RootCollection' => __DIR__.'/..'.'/../lib/RootCollection.php',
410
+        'OCA\\DAV\\Search\\ACalendarSearchProvider' => __DIR__.'/..'.'/../lib/Search/ACalendarSearchProvider.php',
411
+        'OCA\\DAV\\Search\\ContactsSearchProvider' => __DIR__.'/..'.'/../lib/Search/ContactsSearchProvider.php',
412
+        'OCA\\DAV\\Search\\EventsSearchProvider' => __DIR__.'/..'.'/../lib/Search/EventsSearchProvider.php',
413
+        'OCA\\DAV\\Search\\TasksSearchProvider' => __DIR__.'/..'.'/../lib/Search/TasksSearchProvider.php',
414
+        'OCA\\DAV\\Server' => __DIR__.'/..'.'/../lib/Server.php',
415
+        'OCA\\DAV\\ServerFactory' => __DIR__.'/..'.'/../lib/ServerFactory.php',
416
+        'OCA\\DAV\\Service\\ASyncService' => __DIR__.'/..'.'/../lib/Service/ASyncService.php',
417
+        'OCA\\DAV\\Service\\AbsenceService' => __DIR__.'/..'.'/../lib/Service/AbsenceService.php',
418
+        'OCA\\DAV\\Service\\ExampleContactService' => __DIR__.'/..'.'/../lib/Service/ExampleContactService.php',
419
+        'OCA\\DAV\\Service\\ExampleEventService' => __DIR__.'/..'.'/../lib/Service/ExampleEventService.php',
420
+        'OCA\\DAV\\Settings\\Admin\\SystemAddressBookSettings' => __DIR__.'/..'.'/../lib/Settings/Admin/SystemAddressBookSettings.php',
421
+        'OCA\\DAV\\Settings\\AvailabilitySettings' => __DIR__.'/..'.'/../lib/Settings/AvailabilitySettings.php',
422
+        'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__.'/..'.'/../lib/Settings/CalDAVSettings.php',
423
+        'OCA\\DAV\\Settings\\ExampleContentSettings' => __DIR__.'/..'.'/../lib/Settings/ExampleContentSettings.php',
424
+        'OCA\\DAV\\SetupChecks\\NeedsSystemAddressBookSync' => __DIR__.'/..'.'/../lib/SetupChecks/NeedsSystemAddressBookSync.php',
425
+        'OCA\\DAV\\SetupChecks\\WebdavEndpoint' => __DIR__.'/..'.'/../lib/SetupChecks/WebdavEndpoint.php',
426
+        'OCA\\DAV\\Storage\\PublicOwnerWrapper' => __DIR__.'/..'.'/../lib/Storage/PublicOwnerWrapper.php',
427
+        'OCA\\DAV\\Storage\\PublicShareWrapper' => __DIR__.'/..'.'/../lib/Storage/PublicShareWrapper.php',
428
+        'OCA\\DAV\\SystemTag\\SystemTagList' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagList.php',
429
+        'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagMappingNode.php',
430
+        'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagNode.php',
431
+        'OCA\\DAV\\SystemTag\\SystemTagObjectType' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagObjectType.php',
432
+        'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagPlugin.php',
433
+        'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsByIdCollection.php',
434
+        'OCA\\DAV\\SystemTag\\SystemTagsInUseCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsInUseCollection.php',
435
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectList' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectList.php',
436
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectMappingCollection.php',
437
+        'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsObjectTypeCollection.php',
438
+        'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__.'/..'.'/../lib/SystemTag/SystemTagsRelationsCollection.php',
439
+        'OCA\\DAV\\Traits\\PrincipalProxyTrait' => __DIR__.'/..'.'/../lib/Traits/PrincipalProxyTrait.php',
440
+        'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__.'/..'.'/../lib/Upload/AssemblyStream.php',
441
+        'OCA\\DAV\\Upload\\ChunkingPlugin' => __DIR__.'/..'.'/../lib/Upload/ChunkingPlugin.php',
442
+        'OCA\\DAV\\Upload\\ChunkingV2Plugin' => __DIR__.'/..'.'/../lib/Upload/ChunkingV2Plugin.php',
443
+        'OCA\\DAV\\Upload\\CleanupService' => __DIR__.'/..'.'/../lib/Upload/CleanupService.php',
444
+        'OCA\\DAV\\Upload\\FutureFile' => __DIR__.'/..'.'/../lib/Upload/FutureFile.php',
445
+        'OCA\\DAV\\Upload\\PartFile' => __DIR__.'/..'.'/../lib/Upload/PartFile.php',
446
+        'OCA\\DAV\\Upload\\RootCollection' => __DIR__.'/..'.'/../lib/Upload/RootCollection.php',
447
+        'OCA\\DAV\\Upload\\UploadAutoMkcolPlugin' => __DIR__.'/..'.'/../lib/Upload/UploadAutoMkcolPlugin.php',
448
+        'OCA\\DAV\\Upload\\UploadFile' => __DIR__.'/..'.'/../lib/Upload/UploadFile.php',
449
+        'OCA\\DAV\\Upload\\UploadFolder' => __DIR__.'/..'.'/../lib/Upload/UploadFolder.php',
450
+        'OCA\\DAV\\Upload\\UploadHome' => __DIR__.'/..'.'/../lib/Upload/UploadHome.php',
451
+        'OCA\\DAV\\UserMigration\\CalendarMigrator' => __DIR__.'/..'.'/../lib/UserMigration/CalendarMigrator.php',
452
+        'OCA\\DAV\\UserMigration\\CalendarMigratorException' => __DIR__.'/..'.'/../lib/UserMigration/CalendarMigratorException.php',
453
+        'OCA\\DAV\\UserMigration\\ContactsMigrator' => __DIR__.'/..'.'/../lib/UserMigration/ContactsMigrator.php',
454
+        'OCA\\DAV\\UserMigration\\ContactsMigratorException' => __DIR__.'/..'.'/../lib/UserMigration/ContactsMigratorException.php',
455
+        'OCA\\DAV\\UserMigration\\InvalidAddressBookException' => __DIR__.'/..'.'/../lib/UserMigration/InvalidAddressBookException.php',
456
+        'OCA\\DAV\\UserMigration\\InvalidCalendarException' => __DIR__.'/..'.'/../lib/UserMigration/InvalidCalendarException.php',
457 457
     );
458 458
 
459 459
     public static function getInitializer(ClassLoader $loader)
460 460
     {
461
-        return \Closure::bind(function () use ($loader) {
461
+        return \Closure::bind(function() use ($loader) {
462 462
             $loader->prefixLengthsPsr4 = ComposerStaticInitDAV::$prefixLengthsPsr4;
463 463
             $loader->prefixDirsPsr4 = ComposerStaticInitDAV::$prefixDirsPsr4;
464 464
             $loader->classMap = ComposerStaticInitDAV::$classMap;
Please login to merge, or discard this patch.
apps/federation/lib/Command/SyncFederationCalendars.php 1 patch
Indentation   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -15,45 +15,45 @@
 block discarded – undo
15 15
 use Symfony\Component\Console\Output\OutputInterface;
16 16
 
17 17
 class SyncFederationCalendars extends Command {
18
-	public function __construct(
19
-		private readonly FederatedCalendarSyncService $syncService,
20
-		private readonly FederatedCalendarMapper $federatedCalendarMapper,
21
-	) {
22
-		parent::__construct();
23
-	}
24
-
25
-	protected function configure() {
26
-		$this
27
-			->setName('federation:sync-calendars')
28
-			->setDescription('Synchronize all incoming federated calendar shares');
29
-	}
30
-
31
-	protected function execute(InputInterface $input, OutputInterface $output): int {
32
-		$calendarCount = $this->federatedCalendarMapper->countAll();
33
-		if ($calendarCount === 0) {
34
-			$output->writeln('There are no federated calendars');
35
-			return 0;
36
-		}
37
-
38
-		$progress = new ProgressBar($output, $calendarCount);
39
-		$progress->start();
40
-
41
-		$calendars = $this->federatedCalendarMapper->findAll();
42
-		foreach ($calendars as $calendar) {
43
-			try {
44
-				$this->syncService->syncOne($calendar);
45
-			} catch (\Exception $e) {
46
-				$url = $calendar->getUri();
47
-				$msg = $e->getMessage();
48
-				$output->writeln("\n<error>Failed to sync calendar $url: $msg</error>");
49
-			}
50
-
51
-			$progress->advance();
52
-		}
53
-
54
-		$progress->finish();
55
-		$output->writeln('');
56
-
57
-		return 0;
58
-	}
18
+    public function __construct(
19
+        private readonly FederatedCalendarSyncService $syncService,
20
+        private readonly FederatedCalendarMapper $federatedCalendarMapper,
21
+    ) {
22
+        parent::__construct();
23
+    }
24
+
25
+    protected function configure() {
26
+        $this
27
+            ->setName('federation:sync-calendars')
28
+            ->setDescription('Synchronize all incoming federated calendar shares');
29
+    }
30
+
31
+    protected function execute(InputInterface $input, OutputInterface $output): int {
32
+        $calendarCount = $this->federatedCalendarMapper->countAll();
33
+        if ($calendarCount === 0) {
34
+            $output->writeln('There are no federated calendars');
35
+            return 0;
36
+        }
37
+
38
+        $progress = new ProgressBar($output, $calendarCount);
39
+        $progress->start();
40
+
41
+        $calendars = $this->federatedCalendarMapper->findAll();
42
+        foreach ($calendars as $calendar) {
43
+            try {
44
+                $this->syncService->syncOne($calendar);
45
+            } catch (\Exception $e) {
46
+                $url = $calendar->getUri();
47
+                $msg = $e->getMessage();
48
+                $output->writeln("\n<error>Failed to sync calendar $url: $msg</error>");
49
+            }
50
+
51
+            $progress->advance();
52
+        }
53
+
54
+        $progress->finish();
55
+        $output->writeln('');
56
+
57
+        return 0;
58
+    }
59 59
 }
Please login to merge, or discard this patch.
apps/federation/composer/composer/autoload_classmap.php 1 patch
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -6,21 +6,21 @@
 block discarded – undo
6 6
 $baseDir = $vendorDir;
7 7
 
8 8
 return array(
9
-    'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
10
-    'OCA\\Federation\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php',
11
-    'OCA\\Federation\\BackgroundJob\\GetSharedSecret' => $baseDir . '/../lib/BackgroundJob/GetSharedSecret.php',
12
-    'OCA\\Federation\\BackgroundJob\\RequestSharedSecret' => $baseDir . '/../lib/BackgroundJob/RequestSharedSecret.php',
13
-    'OCA\\Federation\\Command\\SyncFederationAddressBooks' => $baseDir . '/../lib/Command/SyncFederationAddressBooks.php',
14
-    'OCA\\Federation\\Command\\SyncFederationCalendars' => $baseDir . '/../lib/Command/SyncFederationCalendars.php',
15
-    'OCA\\Federation\\Controller\\OCSAuthAPIController' => $baseDir . '/../lib/Controller/OCSAuthAPIController.php',
16
-    'OCA\\Federation\\Controller\\SettingsController' => $baseDir . '/../lib/Controller/SettingsController.php',
17
-    'OCA\\Federation\\DAV\\FedAuth' => $baseDir . '/../lib/DAV/FedAuth.php',
18
-    'OCA\\Federation\\DbHandler' => $baseDir . '/../lib/DbHandler.php',
19
-    'OCA\\Federation\\Listener\\SabrePluginAuthInitListener' => $baseDir . '/../lib/Listener/SabrePluginAuthInitListener.php',
20
-    'OCA\\Federation\\Listener\\TrustedServerRemovedListener' => $baseDir . '/../lib/Listener/TrustedServerRemovedListener.php',
21
-    'OCA\\Federation\\Migration\\Version1010Date20200630191302' => $baseDir . '/../lib/Migration/Version1010Date20200630191302.php',
22
-    'OCA\\Federation\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php',
23
-    'OCA\\Federation\\SyncFederationAddressBooks' => $baseDir . '/../lib/SyncFederationAddressBooks.php',
24
-    'OCA\\Federation\\SyncJob' => $baseDir . '/../lib/SyncJob.php',
25
-    'OCA\\Federation\\TrustedServers' => $baseDir . '/../lib/TrustedServers.php',
9
+    'Composer\\InstalledVersions' => $vendorDir.'/composer/InstalledVersions.php',
10
+    'OCA\\Federation\\AppInfo\\Application' => $baseDir.'/../lib/AppInfo/Application.php',
11
+    'OCA\\Federation\\BackgroundJob\\GetSharedSecret' => $baseDir.'/../lib/BackgroundJob/GetSharedSecret.php',
12
+    'OCA\\Federation\\BackgroundJob\\RequestSharedSecret' => $baseDir.'/../lib/BackgroundJob/RequestSharedSecret.php',
13
+    'OCA\\Federation\\Command\\SyncFederationAddressBooks' => $baseDir.'/../lib/Command/SyncFederationAddressBooks.php',
14
+    'OCA\\Federation\\Command\\SyncFederationCalendars' => $baseDir.'/../lib/Command/SyncFederationCalendars.php',
15
+    'OCA\\Federation\\Controller\\OCSAuthAPIController' => $baseDir.'/../lib/Controller/OCSAuthAPIController.php',
16
+    'OCA\\Federation\\Controller\\SettingsController' => $baseDir.'/../lib/Controller/SettingsController.php',
17
+    'OCA\\Federation\\DAV\\FedAuth' => $baseDir.'/../lib/DAV/FedAuth.php',
18
+    'OCA\\Federation\\DbHandler' => $baseDir.'/../lib/DbHandler.php',
19
+    'OCA\\Federation\\Listener\\SabrePluginAuthInitListener' => $baseDir.'/../lib/Listener/SabrePluginAuthInitListener.php',
20
+    'OCA\\Federation\\Listener\\TrustedServerRemovedListener' => $baseDir.'/../lib/Listener/TrustedServerRemovedListener.php',
21
+    'OCA\\Federation\\Migration\\Version1010Date20200630191302' => $baseDir.'/../lib/Migration/Version1010Date20200630191302.php',
22
+    'OCA\\Federation\\Settings\\Admin' => $baseDir.'/../lib/Settings/Admin.php',
23
+    'OCA\\Federation\\SyncFederationAddressBooks' => $baseDir.'/../lib/SyncFederationAddressBooks.php',
24
+    'OCA\\Federation\\SyncJob' => $baseDir.'/../lib/SyncJob.php',
25
+    'OCA\\Federation\\TrustedServers' => $baseDir.'/../lib/TrustedServers.php',
26 26
 );
Please login to merge, or discard this patch.