mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-25 01:13:25 +01:00
121 lines
2.5 KiB
PHP
121 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* CalDAV tests: create, read and delete an event
|
|
*
|
|
* @link https://www.egroupware.org
|
|
* @author Ralf Becker <rb@egroupware.org>
|
|
* @package calendar
|
|
* @subpackage tests
|
|
* @copyright (c) 2020 by Ralf Becker <rb@egroupware.org>
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
*/
|
|
|
|
namespace EGroupware\calendar;
|
|
|
|
require_once __DIR__.'/../../../api/tests/CalDAVTest.php';
|
|
|
|
use EGroupware\Api\CalDAVTest;
|
|
use GuzzleHttp\RequestOptions;
|
|
|
|
class CalDAVcreateReadDelete extends CalDAVTest
|
|
{
|
|
/**
|
|
* Test accessing CalDAV without authentication
|
|
*/
|
|
public function testNoAuth()
|
|
{
|
|
$response = $this->getClient([])->get($this->url('/'));
|
|
|
|
$this->assertHttpStatus(401, $response);
|
|
}
|
|
|
|
/**
|
|
* Test accessing CalDAV with authentication
|
|
*/
|
|
public function testAuth()
|
|
{
|
|
$response = $this->getClient()->get($this->url('/'));
|
|
|
|
$this->assertHttpStatus(200, $response);
|
|
}
|
|
|
|
const EVENT_URL = '/demo/calendar/new-event-1233456789-new.ics';
|
|
const EVENT_ICAL = <<<EOICAL
|
|
BEGIN:VCALENDAR
|
|
VERSION:2.0
|
|
BEGIN:VTIMEZONE
|
|
TZID:Europe/Berlin
|
|
BEGIN:DAYLIGHT
|
|
TZOFFSETFROM:+0100
|
|
TZOFFSETTO:+0200
|
|
TZNAME:CEST
|
|
DTSTART:19700329T020000
|
|
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
|
|
END:DAYLIGHT
|
|
BEGIN:STANDARD
|
|
TZOFFSETFROM:+0200
|
|
TZOFFSETTO:+0100
|
|
TZNAME:CET
|
|
DTSTART:19701025T030000
|
|
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
|
|
END:STANDARD
|
|
END:VTIMEZONE
|
|
BEGIN:VEVENT
|
|
DTSTART;TZID=Europe/Berlin:20110406T210000
|
|
DTEND;TZID=Europe/Berlin:20110406T220000
|
|
DTSTAMP:20110406T183747Z
|
|
LAST-MODIFIED:20110406T183747Z
|
|
LOCATION:Somewhere
|
|
SUMMARY:Tonight
|
|
UID:new-event-1233456789-new
|
|
END:VEVENT
|
|
END:VCALENDAR
|
|
EOICAL;
|
|
|
|
/**
|
|
* Create an event
|
|
*/
|
|
public function testCreate()
|
|
{
|
|
$response = $this->getClient()->put($this->url(self::EVENT_URL), [
|
|
RequestOptions::HEADERS => [
|
|
'Content-Type' => 'text/calendar',
|
|
'If-None-Match' => '*',
|
|
],
|
|
RequestOptions::BODY => self::EVENT_ICAL,
|
|
]);
|
|
|
|
$this->assertHttpStatus(201, $response);
|
|
}
|
|
|
|
/**
|
|
* Read created event
|
|
*/
|
|
public function testRead()
|
|
{
|
|
$response = $this->getClient()->get($this->url(self::EVENT_URL));
|
|
|
|
$this->assertHttpStatus(200, $response);
|
|
$this->assertIcal(self::EVENT_ICAL, $response->getBody());
|
|
}
|
|
|
|
/**
|
|
* Delete created event
|
|
*/
|
|
public function testDelete()
|
|
{
|
|
$response = $this->getClient()->delete($this->url(self::EVENT_URL));
|
|
|
|
$this->assertHttpStatus(204, $response);
|
|
}
|
|
|
|
/**
|
|
* Read created event
|
|
*/
|
|
public function testReadDeleted()
|
|
{
|
|
$response = $this->getClient()->get($this->url(self::EVENT_URL));
|
|
|
|
$this->assertHttpStatus(404, $response);
|
|
}
|
|
} |