9require_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']
94DTSTAMP:20160406T052348Z
95DTSTART: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']
135DTSTAMP:20160406T052348Z
136DTSTART: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']
162DTSTAMP:20160406T052348Z
163DTSTART: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'],
185DTSTAMP:20160406T052348Z\r
186DTSTART: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'
321DTSTAMP:20160406T052348Z
322DTSTART: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'
391SUMMARY:Meeting in M\xfcnster
392DTSTAMP:20160406T052348Z
393DTSTART: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
An exception for terminatinating execution or to throw for unit testing.
testCreateFileWrongComponent()
testCreateFile2Components()
testCreateFileModified()
What we are testing here, is if we send in a latin1 character, the server should automatically transf...
testCreateFileNoVersion()
testUpdateFileInvalidComponent()
testCreateFileNoVersionFixed()
testUpdateFileParsableBody()
testCreateFileNoComponents()
testCreateFileInvalidComponent()
request(HTTP\Request $request)
SupportedCalendarComponentSet property.
const VERSION
Full version number.
The Request class represents a single HTTP request.
static createFromServerArray(array $serverArray)
This static method will create a new Request object, based on a PHP $_SERVER array.