diff options
author | blizzz <blizzz@arthur-schiwon.de> | 2018-08-06 17:17:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-06 17:17:47 +0200 |
commit | db941a3f2e0f8e2afe61b972a808e0db9a82c876 (patch) | |
tree | e028489f7d5bcb809f5911d220fa03447149c3ce | |
parent | f67d942fad1035d98e2ff53ec74eea28ab44e9f6 (diff) | |
parent | c05a0b9fa6c55e2c392bdca43c6563ecffc36479 (diff) | |
download | nextcloud-server-db941a3f2e0f8e2afe61b972a808e0db9a82c876.tar.gz nextcloud-server-db941a3f2e0f8e2afe61b972a808e0db9a82c876.zip |
Merge pull request #10523 from janLo/fix-8825
Adding test for table schedulingobjects and fixing postgres LOB
-rw-r--r-- | apps/dav/lib/CalDAV/CalDavBackend.php | 2 | ||||
-rw-r--r-- | apps/dav/tests/unit/CalDAV/CalDavBackendTest.php | 80 |
2 files changed, 79 insertions, 3 deletions
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index de46dfeb244..df10b62fc5b 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -1986,7 +1986,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription $query->insert('schedulingobjects') ->values([ 'principaluri' => $query->createNamedParameter($principalUri), - 'calendardata' => $query->createNamedParameter($objectData), + 'calendardata' => $query->createNamedParameter($objectData, IQueryBuilder::PARAM_LOB), 'uri' => $query->createNamedParameter($objectUri), 'lastmodified' => $query->createNamedParameter(time()), 'etag' => $query->createNamedParameter(md5($objectData)), diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php index fd048240467..26439df4a01 100644 --- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php @@ -562,8 +562,84 @@ EOD; $this->assertCount(0, $subscriptions); } - public function testScheduling() { - $this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', ''); + public function providesSchedulingData() { + $data =<<<EOS +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Sabre//Sabre VObject 3.5.0//EN +CALSCALE:GREGORIAN +METHOD:REQUEST +BEGIN:VTIMEZONE +TZID:Europe/Warsaw +BEGIN:DAYLIGHT +TZOFFSETFROM:+0100 +TZOFFSETTO:+0200 +TZNAME:CEST +DTSTART:19700329T020000 +RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 +END:DAYLIGHT +BEGIN:STANDARD +TZOFFSETFROM:+0200 +TZOFFSETTO:+0100 +TZNAME:CET +DTSTART:19701025T030000 +RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 +END:STANDARD +END:VTIMEZONE +BEGIN:VEVENT +CREATED:20170320T131655Z +LAST-MODIFIED:20170320T135019Z +DTSTAMP:20170320T135019Z +UID:7e908a6d-4c4e-48d7-bd62-59ab80fbf1a3 +SUMMARY:TEST Z pg_escape_bytea +ORGANIZER;RSVP=TRUE;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:k.klimczak@gromar.e + u +ATTENDEE;RSVP=TRUE;CN=Zuzanna Leszek;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICI + PANT:mailto:z.leszek@gromar.eu +ATTENDEE;RSVP=TRUE;CN=Marcin Pisarski;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTIC + IPANT:mailto:m.pisarski@gromar.eu +ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:klimcz + ak.k@gmail.com +ATTENDEE;RSVP=TRUE;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:k_klim + czak@tlen.pl +DTSTART;TZID=Europe/Warsaw:20170325T150000 +DTEND;TZID=Europe/Warsaw:20170325T160000 +TRANSP:OPAQUE +DESCRIPTION:Magiczna treść uzyskana za pomocą magicznego proszku.\n\nę + żźćńłóÓŻŹĆŁĘ€śśśŚŚ\n \,\,))))))))\;\,\n + __))))))))))))))\,\n \\|/ -\\(((((''''((((((((.\n -*-==/// + ///(('' . `))))))\,\n /|\\ ))| o \;-. '((((( + \,(\,\n ( `| / ) \;))))' + \,_))^\;(~\n | | | \,))((((_ _____- + -----~~~-. %\,\;(\;(>'\;'~\n o_)\; \; )))(((` ~--- + ~ `:: \\ %%~~)(v\;(`('~\n \; ''''```` + `: `:::|\\\,__\,%% )\;`'\; ~\n | _ + ) / `:|`----' `-'\n ______/\\/~ | + / /\n /~\;\;.____/\;\;' / ___--\ + ,-( `\;\;\;/\n / // _\;______\;'------~~~~~ /\;\;/\\ /\n + // | | / \; \\\;\;\,\\\n (<_ | \; + /'\,/-----' _>\n \\_| ||_ + //~\;~~~~~~~~~\n `\\_| (\,~~ -Tua Xiong\n + \\~\\\n + ~~\n\n +SEQUENCE:1 +X-MOZ-GENERATION:1 +END:VEVENT +END:VCALENDAR +EOS; + + return [ + 'no data' => [''], + 'failing on postgres' => [$data] + ]; + } + + /** + * @dataProvider providesSchedulingData + * @param $objectData + */ + public function testScheduling($objectData) { + $this->backend->createSchedulingObject(self::UNIT_TEST_USER, 'Sample Schedule', $objectData); $sos = $this->backend->getSchedulingObjects(self::UNIT_TEST_USER); $this->assertCount(1, $sos); |