Skip to content

Commit afd4ebf

Browse files
committed
Adding test for table schedulingobjects and fixing postgres LOB
1 parent d84d7be commit afd4ebf

File tree

2 files changed

+79
-3
lines changed

2 files changed

+79
-3
lines changed

apps/dav/lib/CalDAV/CalDavBackend.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1480,7 +1480,7 @@ function createSchedulingObject($principalUri, $objectUri, $objectData) {
14801480
$query->insert('schedulingobjects')
14811481
->values([
14821482
'principaluri' => $query->createNamedParameter($principalUri),
1483-
'calendardata' => $query->createNamedParameter($objectData),
1483+
'calendardata' => $query->createNamedParameter($objectData, IQueryBuilder::PARAM_LOB),
14841484
'uri' => $query->createNamedParameter($objectUri),
14851485
'lastmodified' => $query->createNamedParameter(time()),
14861486
'etag' => $query->createNamedParameter(md5($objectData)),

apps/dav/tests/unit/CalDAV/CalDavBackendTest.php

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -495,8 +495,84 @@ public function testSubscriptions() {
495495
$this->assertCount(0, $subscriptions);
496496
}
497497

498-
public function testScheduling() {
499-
$this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', '');
498+
public function providesSchedulingData() {
499+
$data =<<<EOS
500+
BEGIN:VCALENDAR
501+
VERSION:2.0
502+
PRODID:-//Sabre//Sabre VObject 3.5.0//EN
503+
CALSCALE:GREGORIAN
504+
METHOD:REQUEST
505+
BEGIN:VTIMEZONE
506+
TZID:Europe/Warsaw
507+
BEGIN:DAYLIGHT
508+
TZOFFSETFROM:+0100
509+
TZOFFSETTO:+0200
510+
TZNAME:CEST
511+
DTSTART:19700329T020000
512+
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
513+
END:DAYLIGHT
514+
BEGIN:STANDARD
515+
TZOFFSETFROM:+0200
516+
TZOFFSETTO:+0100
517+
TZNAME:CET
518+
DTSTART:19701025T030000
519+
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
520+
END:STANDARD
521+
END:VTIMEZONE
522+
BEGIN:VEVENT
523+
CREATED:20170320T131655Z
524+
LAST-MODIFIED:20170320T135019Z
525+
DTSTAMP:20170320T135019Z
526+
UID:7e908a6d-4c4e-48d7-bd62-59ab80fbf1a3
527+
SUMMARY:TEST Z pg_escape_bytea
528+
ORGANIZER;RSVP=TRUE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:k.klimczak@gromar.e
529+
u
530+
ATTENDEE;RSVP=TRUE;CN=Zuzanna Leszek;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICI
531+
PANT:mailto:z.leszek@gromar.eu
532+
ATTENDEE;RSVP=TRUE;CN=Marcin Pisarski;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTIC
533+
IPANT:mailto:m.pisarski@gromar.eu
534+
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:klimcz
535+
ak.k@gmail.com
536+
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:k_klim
537+
czak@tlen.pl
538+
DTSTART;TZID=Europe/Warsaw:20170325T150000
539+
DTEND;TZID=Europe/Warsaw:20170325T160000
540+
TRANSP:OPAQUE
541+
DESCRIPTION:Magiczna treść uzyskana za pomocą magicznego proszku.\n\nę
542+
żźćńłóÓŻŹĆŁĘ€śśśŚŚ\n \,\,))))))))\;\,\n
543+
__))))))))))))))\,\n \\|/ -\\(((((''''((((((((.\n -*-==///
544+
///(('' . `))))))\,\n /|\\ ))| o \;-. '(((((
545+
\,(\,\n ( `| / ) \;))))'
546+
\,_))^\;(~\n | | | \,))((((_ _____-
547+
-----~~~-. %\,\;(\;(>'\;'~\n o_)\; \; )))(((` ~---
548+
~ `:: \\ %%~~)(v\;(`('~\n \; ''''````
549+
`: `:::|\\\,__\,%% )\;`'\; ~\n | _
550+
) / `:|`----' `-'\n ______/\\/~ |
551+
/ /\n /~\;\;.____/\;\;' / ___--\
552+
,-( `\;\;\;/\n / // _\;______\;'------~~~~~ /\;\;/\\ /\n
553+
// | | / \; \\\;\;\,\\\n (<_ | \;
554+
/'\,/-----' _>\n \\_| ||_
555+
//~\;~~~~~~~~~\n `\\_| (\,~~ -Tua Xiong\n
556+
\\~\\\n
557+
~~\n\n
558+
SEQUENCE:1
559+
X-MOZ-GENERATION:1
560+
END:VEVENT
561+
END:VCALENDAR
562+
EOS;
563+
564+
return [
565+
'no data' => [''],
566+
'failing on postgres' => [$data]
567+
];
568+
}
569+
570+
/**
571+
* @dataProvider providesSchedulingData
572+
* @param $objectData
573+
*/
574+
public function testScheduling($objectData) {
575+
$this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', $objectData);
500576

501577
$sos = $this->backend->getSchedulingObjects(self::UNIT_TEST_USER);
502578
$this->assertCount(1, $sos);

0 commit comments

Comments
 (0)