summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblizzz <blizzz@arthur-schiwon.de>2018-08-06 17:17:47 +0200
committerGitHub <noreply@github.com>2018-08-06 17:17:47 +0200
commitdb941a3f2e0f8e2afe61b972a808e0db9a82c876 (patch)
treee028489f7d5bcb809f5911d220fa03447149c3ce
parentf67d942fad1035d98e2ff53ec74eea28ab44e9f6 (diff)
parentc05a0b9fa6c55e2c392bdca43c6563ecffc36479 (diff)
downloadnextcloud-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.php2
-rw-r--r--apps/dav/tests/unit/CalDAV/CalDavBackendTest.php80
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);