9 require_once
'Sabre/HTTP/ResponseMock.php';
27 'principaluri' =>
'principals/admin',
33 'principaluri' =>
'principals/admin',
47 $this->server->sapi =
new HTTP\SapiMock();
48 $this->server->debugExceptions =
true;
51 $this->server->addPlugin($plugin);
60 $this->server->httpRequest =
$request;
61 $this->server->exec();
63 return $this->server->httpResponse;
70 'REQUEST_METHOD' =>
'PUT',
71 'REQUEST_URI' =>
'/calendars/admin/calendar1/blabla.ics',
76 $this->assertEquals(415,
$response->status);
84 '/calendars/admin/calendar1/blabla.ics',
85 [
'Prefer' =>
'handling=strict']
94 DTSTAMP:20160406T052348Z
95 DTSTART:20160706T140000Z
104 $this->assertEquals(201,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
105 $this->assertEquals([
107 'Content-Length' => [
'0'],
108 'ETag' => [
'"' . md5($ics) .
'"'],
112 'uri' =>
'blabla.ics',
113 'calendardata' => $ics,
114 'calendarid' =>
'calendar1',
115 'lastmodified' => null,
118 $this->assertEquals($expected, $this->calBackend->getCalendarObject(
'calendar1',
'blabla.ics'));
126 '/calendars/admin/calendar1/blabla.ics',
127 [
'Prefer' =>
'handling=strict']
135 DTSTAMP:20160406T052348Z
136 DTSTART:20160706T140000Z
145 $this->assertEquals(415,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
153 '/calendars/admin/calendar1/blabla.ics',
154 [
'Prefer' =>
'handling=lenient']
162 DTSTAMP:20160406T052348Z
163 DTSTART:20160706T140000Z
172 $this->assertEquals(201,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
173 $this->assertEquals([
175 'Content-Length' => [
'0'],
176 'X-Sabre-Ew-Gross' => [
'iCalendar validation warning: VERSION MUST appear exactly once in a VCALENDAR component'],
185 DTSTAMP:20160406T052348Z\r
186 DTSTART:20160706T140000Z\r
193 'uri' =>
'blabla.ics',
194 'calendardata' => $ics,
195 'calendarid' =>
'calendar1',
196 'lastmodified' => null,
199 $this->assertEquals($expected, $this->calBackend->getCalendarObject(
'calendar1',
'blabla.ics'));
207 '/calendars/admin/calendar1/blabla.ics',
208 [
'Prefer' =>
'handling=strict']
220 $this->assertEquals(403,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
227 'REQUEST_METHOD' =>
'PUT',
228 'REQUEST_URI' =>
'/calendars/admin/calendar1/blabla.ics',
230 $request->setBody(
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
234 $this->assertEquals(415,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
241 'REQUEST_METHOD' =>
'PUT',
242 'REQUEST_URI' =>
'/calendars/admin/calendar1/blabla.ics',
244 $request->setBody(
"BEGIN:VCARD\r\nEND:VCARD\r\n");
248 $this->assertEquals(415,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
255 'REQUEST_METHOD' =>
'PUT',
256 'REQUEST_URI' =>
'/calendars/admin/calendar1/blabla.ics',
258 $request->setBody(
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nUID:foo\r\nEND:VEVENT\r\nBEGIN:VJOURNAL\r\nUID:foo\r\nEND:VJOURNAL\r\nEND:VCALENDAR\r\n");
262 $this->assertEquals(415,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
269 'REQUEST_METHOD' =>
'PUT',
270 'REQUEST_URI' =>
'/calendars/admin/calendar1/blabla.ics',
272 $request->setBody(
"BEGIN:VCALENDAR\r\nBEGIN:VTIMEZONE\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nUID:foo\r\nEND:VEVENT\r\nBEGIN:VEVENT\r\nUID:bar\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
276 $this->assertEquals(415,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
283 'REQUEST_METHOD' =>
'PUT',
284 'REQUEST_URI' =>
'/calendars/admin/calendar1/blabla.ics',
286 $request->setBody(
"BEGIN:VCALENDAR\r\nBEGIN:VTIMEZONE\r\nEND:VTIMEZONE\r\nBEGIN:VFREEBUSY\r\nUID:foo\r\nEND:VFREEBUSY\r\nEND:VCALENDAR\r\n");
290 $this->assertEquals(403,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
296 $this->calBackend->createCalendarObject(
'calendar1',
'blabla.ics',
'foo');
298 'REQUEST_METHOD' =>
'PUT',
299 'REQUEST_URI' =>
'/calendars/admin/calendar1/blabla.ics',
304 $this->assertEquals(415,
$response->status);
310 $this->calBackend->createCalendarObject(
'calendar1',
'blabla.ics',
'foo');
313 '/calendars/admin/calendar1/blabla.ics' 321 DTSTAMP:20160406T052348Z
322 DTSTART:20160706T140000Z
330 $this->assertEquals(204,
$response->status);
333 'uri' =>
'blabla.ics',
334 'calendardata' => $ics,
335 'calendarid' =>
'calendar1',
336 'lastmodified' => null,
339 $this->assertEquals($expected, $this->calBackend->getCalendarObject(
'calendar1',
'blabla.ics'));
346 'REQUEST_METHOD' =>
'PUT',
347 'REQUEST_URI' =>
'/calendars/admin/calendar2/blabla.ics',
349 $request->setBody(
"BEGIN:VCALENDAR\r\nBEGIN:VTIMEZONE\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nUID:foo\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
353 $this->assertEquals(403,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
359 $this->calBackend->createCalendarObject(
'calendar2',
'blabla.ics',
'foo');
361 'REQUEST_METHOD' =>
'PUT',
362 'REQUEST_URI' =>
'/calendars/admin/calendar2/blabla.ics',
364 $request->setBody(
"BEGIN:VCALENDAR\r\nBEGIN:VTIMEZONE\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nUID:foo\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n");
368 $this->assertEquals(403,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
383 '/calendars/admin/calendar1/blabla.ics' 391 SUMMARY:Meeting
in M\xfcnster
392 DTSTAMP:20160406T052348Z
393 DTSTART:20160706T140000Z
402 $this->assertEquals(201,
$response->status,
'Incorrect status returned! Full response body: ' .
$response->body);
403 $this->assertNull(
$response->getHeader(
'ETag'));
foreach($paths as $path) $request
The Request class represents a single HTTP request.
SupportedCalendarComponentSet property.
const VERSION
Full version number.
testUpdateFileParsableBody()
testCreateFileNoVersion()
testCreateFileWrongComponent()
testCreateFileNoComponents()
request(HTTP\Request $request)
testCreateFileModified()
What we are testing here, is if we send in a latin1 character, the server should automatically transf...
testCreateFileNoVersionFixed()
testCreateFile2Components()
static createFromServerArray(array $serverArray)
This static method will create a new Request object, based on a PHP $_SERVER array.
testUpdateFileInvalidComponent()
testCreateFileInvalidComponent()