Skip to content

Commit c05a0b9

Browse files
DeepDiver1975janLo
authored andcommitted
Adding test for table schedulingobjects and fixing postgres LOB
(cherry picked from commit afd4ebf0404e8bcd7cba0bec2dce177e97632f8a) Signed-off-by: Jan Losinski <losinski@wh2.tu-dresden.de>
1 parent af6f93b commit c05a0b9

2 files changed

Lines changed: 79 additions & 3 deletions

File tree

apps/dav/lib/CalDAV/CalDavBackend.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1986,7 +1986,7 @@ function createSchedulingObject($principalUri, $objectUri, $objectData) {
19861986
$query->insert('schedulingobjects')
19871987
->values([
19881988
'principaluri' => $query->createNamedParameter($principalUri),
1989-
'calendardata' => $query->createNamedParameter($objectData),
1989+
'calendardata' => $query->createNamedParameter($objectData, IQueryBuilder::PARAM_LOB),
19901990
'uri' => $query->createNamedParameter($objectUri),
19911991
'lastmodified' => $query->createNamedParameter(time()),
19921992
'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
@@ -562,8 +562,84 @@ public function testSubscriptions() {
562562
$this->assertCount(0, $subscriptions);
563563
}
564564

565-
public function testScheduling() {
566-
$this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', '');
565+
public function providesSchedulingData() {
566+
$data =<<<EOS
567+
BEGIN:VCALENDAR
568+
VERSION:2.0
569+
PRODID:-//Sabre//Sabre VObject 3.5.0//EN
570+
CALSCALE:GREGORIAN
571+
METHOD:REQUEST
572+
BEGIN:VTIMEZONE
573+
TZID:Europe/Warsaw
574+
BEGIN:DAYLIGHT
575+
TZOFFSETFROM:+0100
576+
TZOFFSETTO:+0200
577+
TZNAME:CEST
578+
DTSTART:19700329T020000
579+
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
580+
END:DAYLIGHT
581+
BEGIN:STANDARD
582+
TZOFFSETFROM:+0200
583+
TZOFFSETTO:+0100
584+
TZNAME:CET
585+
DTSTART:19701025T030000
586+
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
587+
END:STANDARD
588+
END:VTIMEZONE
589+
BEGIN:VEVENT
590+
CREATED:20170320T131655Z
591+
LAST-MODIFIED:20170320T135019Z
592+
DTSTAMP:20170320T135019Z
593+
UID:7e908a6d-4c4e-48d7-bd62-59ab80fbf1a3
594+
SUMMARY:TEST Z pg_escape_bytea
595+
ORGANIZER;RSVP=TRUE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:k.klimczak@gromar.e
596+
u
597+
ATTENDEE;RSVP=TRUE;CN=Zuzanna Leszek;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICI
598+
PANT:mailto:z.leszek@gromar.eu
599+
ATTENDEE;RSVP=TRUE;CN=Marcin Pisarski;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTIC
600+
IPANT:mailto:m.pisarski@gromar.eu
601+
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:klimcz
602+
ak.k@gmail.com
603+
ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:k_klim
604+
czak@tlen.pl
605+
DTSTART;TZID=Europe/Warsaw:20170325T150000
606+
DTEND;TZID=Europe/Warsaw:20170325T160000
607+
TRANSP:OPAQUE
608+
DESCRIPTION:Magiczna treść uzyskana za pomocą magicznego proszku.\n\nę
609+
żźćńłóÓŻŹĆŁĘ€śśśŚŚ\n \,\,))))))))\;\,\n
610+
__))))))))))))))\,\n \\|/ -\\(((((''''((((((((.\n -*-==///
611+
///(('' . `))))))\,\n /|\\ ))| o \;-. '(((((
612+
\,(\,\n ( `| / ) \;))))'
613+
\,_))^\;(~\n | | | \,))((((_ _____-
614+
-----~~~-. %\,\;(\;(>'\;'~\n o_)\; \; )))(((` ~---
615+
~ `:: \\ %%~~)(v\;(`('~\n \; ''''````
616+
`: `:::|\\\,__\,%% )\;`'\; ~\n | _
617+
) / `:|`----' `-'\n ______/\\/~ |
618+
/ /\n /~\;\;.____/\;\;' / ___--\
619+
,-( `\;\;\;/\n / // _\;______\;'------~~~~~ /\;\;/\\ /\n
620+
// | | / \; \\\;\;\,\\\n (<_ | \;
621+
/'\,/-----' _>\n \\_| ||_
622+
//~\;~~~~~~~~~\n `\\_| (\,~~ -Tua Xiong\n
623+
\\~\\\n
624+
~~\n\n
625+
SEQUENCE:1
626+
X-MOZ-GENERATION:1
627+
END:VEVENT
628+
END:VCALENDAR
629+
EOS;
630+
631+
return [
632+
'no data' => [''],
633+
'failing on postgres' => [$data]
634+
];
635+
}
636+
637+
/**
638+
* @dataProvider providesSchedulingData
639+
* @param $objectData
640+
*/
641+
public function testScheduling($objectData) {
642+
$this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', $objectData);
567643

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

0 commit comments

Comments
 (0)