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.