@@ -274,18 +274,74 @@ public function testCalendarObjectsOperations() {
274274 $ this ->assertCount (0 , $ calendarObjects );
275275 }
276276
277+ public function testMultipleCalendarObjectsWithSameUID () {
278+ $ calendarId = $ this ->createTestCalendar ();
279+
280+ $ calData = <<<'EOD'
281+ BEGIN:VCALENDAR
282+ VERSION:2.0
283+ PRODID:ownCloud Calendar
284+ BEGIN:VEVENT
285+ CREATED;VALUE=DATE-TIME:20130910T125139Z
286+ UID:47d15e3ec8-1
287+ LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z
288+ DTSTAMP;VALUE=DATE-TIME:20130910T125139Z
289+ SUMMARY:Test Event
290+ DTSTART;VALUE=DATE-TIME:20130912T130000Z
291+ DTEND;VALUE=DATE-TIME:20130912T140000Z
292+ CLASS:PUBLIC
293+ END:VEVENT
294+ END:VCALENDAR
295+ EOD;
296+ }
297+
277298 public function testMultiCalendarObjects () {
278299
279300 $ calendarId = $ this ->createTestCalendar ();
280301
281302 // create an event
282- $ calData = <<<'EOD'
303+ $ calData = [];
304+ $ calData [] = <<<'EOD'
283305BEGIN:VCALENDAR
284306VERSION:2.0
285307PRODID:ownCloud Calendar
286308BEGIN:VEVENT
287309CREATED;VALUE=DATE-TIME:20130910T125139Z
288- UID:47d15e3ec8
310+ UID:47d15e3ec8-1
311+ LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z
312+ DTSTAMP;VALUE=DATE-TIME:20130910T125139Z
313+ SUMMARY:Test Event
314+ DTSTART;VALUE=DATE-TIME:20130912T130000Z
315+ DTEND;VALUE=DATE-TIME:20130912T140000Z
316+ CLASS:PUBLIC
317+ END:VEVENT
318+ END:VCALENDAR
319+ EOD;
320+
321+ $ calData [] = <<<'EOD'
322+ BEGIN:VCALENDAR
323+ VERSION:2.0
324+ PRODID:ownCloud Calendar
325+ BEGIN:VEVENT
326+ CREATED;VALUE=DATE-TIME:20130910T125139Z
327+ UID:47d15e3ec8-2
328+ LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z
329+ DTSTAMP;VALUE=DATE-TIME:20130910T125139Z
330+ SUMMARY:Test Event
331+ DTSTART;VALUE=DATE-TIME:20130912T130000Z
332+ DTEND;VALUE=DATE-TIME:20130912T140000Z
333+ CLASS:PUBLIC
334+ END:VEVENT
335+ END:VCALENDAR
336+ EOD;
337+
338+ $ calData [] = <<<'EOD'
339+ BEGIN:VCALENDAR
340+ VERSION:2.0
341+ PRODID:ownCloud Calendar
342+ BEGIN:VEVENT
343+ CREATED;VALUE=DATE-TIME:20130910T125139Z
344+ UID:47d15e3ec8-3
289345LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z
290346DTSTAMP;VALUE=DATE-TIME:20130910T125139Z
291347SUMMARY:Test Event
@@ -295,21 +351,22 @@ public function testMultiCalendarObjects() {
295351END:VEVENT
296352END:VCALENDAR
297353EOD;
354+
298355 $ uri0 = static ::getUniqueID ('card ' );
299356 $ this ->dispatcher ->expects ($ this ->at (0 ))
300357 ->method ('dispatch ' )
301358 ->with ('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject ' );
302- $ this ->backend ->createCalendarObject ($ calendarId , $ uri0 , $ calData );
359+ $ this ->backend ->createCalendarObject ($ calendarId , $ uri0 , $ calData[ 0 ] );
303360 $ uri1 = static ::getUniqueID ('card ' );
304361 $ this ->dispatcher ->expects ($ this ->at (0 ))
305362 ->method ('dispatch ' )
306363 ->with ('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject ' );
307- $ this ->backend ->createCalendarObject ($ calendarId , $ uri1 , $ calData );
364+ $ this ->backend ->createCalendarObject ($ calendarId , $ uri1 , $ calData[ 1 ] );
308365 $ uri2 = static ::getUniqueID ('card ' );
309366 $ this ->dispatcher ->expects ($ this ->at (0 ))
310367 ->method ('dispatch ' )
311368 ->with ('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject ' );
312- $ this ->backend ->createCalendarObject ($ calendarId , $ uri2 , $ calData );
369+ $ this ->backend ->createCalendarObject ($ calendarId , $ uri2 , $ calData[ 2 ] );
313370
314371 // get all the cards
315372 $ calendarObjects = $ this ->backend ->getCalendarObjects ($ calendarId );
@@ -325,9 +382,15 @@ public function testMultiCalendarObjects() {
325382 $ this ->assertArrayHasKey ('etag ' , $ card );
326383 $ this ->assertArrayHasKey ('size ' , $ card );
327384 $ this ->assertArrayHasKey ('classification ' , $ card );
328- $ this ->assertEquals ($ calData , $ card ['calendardata ' ]);
329385 }
330386
387+ usort ($ calendarObjects , function ($ a , $ b ) {
388+ return $ a ['id ' ] - $ b ['id ' ];
389+ });
390+
391+ $ this ->assertEquals ($ calData [1 ], $ calendarObjects [0 ]['calendardata ' ]);
392+ $ this ->assertEquals ($ calData [2 ], $ calendarObjects [1 ]['calendardata ' ]);
393+
331394 // delete the card
332395 $ this ->dispatcher ->expects ($ this ->at (0 ))
333396 ->method ('dispatch ' )
@@ -370,7 +433,26 @@ public function testCalendarQuery($expectedEventsInResult, $propFilters, $compFi
370433
371434 public function testGetCalendarObjectByUID () {
372435 $ calendarId = $ this ->createTestCalendar ();
373- $ this ->createEvent ($ calendarId , '20130912T130000Z ' , '20130912T140000Z ' );
436+ $ uri = static ::getUniqueID ('calobj ' );
437+ $ calData = <<<'EOD'
438+ BEGIN:VCALENDAR
439+ VERSION:2.0
440+ PRODID:ownCloud Calendar
441+ BEGIN:VEVENT
442+ CREATED;VALUE=DATE-TIME:20130910T125139Z
443+ UID:47d15e3ec8
444+ LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z
445+ DTSTAMP;VALUE=DATE-TIME:20130910T125139Z
446+ SUMMARY:Test Event
447+ DTSTART;VALUE=DATE-TIME:20130912T130000Z
448+ DTEND;VALUE=DATE-TIME:20130912T140000Z
449+ CLASS:PUBLIC
450+ END:VEVENT
451+ END:VCALENDAR
452+ EOD;
453+
454+
455+ $ this ->backend ->createCalendarObject ($ calendarId , $ uri , $ calData );
374456
375457 $ co = $ this ->backend ->getCalendarObjectByUID (self ::UNIT_TEST_USER , '47d15e3ec8 ' );
376458 $ this ->assertNotNull ($ co );
0 commit comments