Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1820434
GetEventsByTimerangeTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Size
2 KB
Subscribers
None
GetEventsByTimerangeTest.php
View Options
<?php
namespace
Sabre\CalDAV
;
use
Sabre\HTTP
;
use
Sabre\VObject
;
/**
* This unittest is created to check if queries for time-range include the start timestamp or not
*
* @copyright Copyright (C) 2007-2015 fruux GmbH (https://fruux.com/).
* @author Evert Pot (http://evertpot.com/)
* @license http://sabre.io/license/ Modified BSD License
*/
class
GetEventsByTimerangeTest
extends
\Sabre\DAVServerTest
{
protected
$setupCalDAV
=
true
;
protected
$caldavCalendars
=
array
(
array
(
'id'
=>
1
,
'name'
=>
'Calendar'
,
'principaluri'
=>
'principals/user1'
,
'uri'
=>
'calendar1'
,
)
);
protected
$caldavCalendarObjects
=
array
(
1
=>
array
(
'event.ics'
=>
array
(
'calendardata'
=>
'BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
CREATED:20120313T142342Z
UID:171EBEFC-C951-499D-B234-7BA7D677B45D
DTEND;TZID=Europe/Berlin:20120227T010000
TRANSP:OPAQUE
SUMMARY:Monday 0h
DTSTART;TZID=Europe/Berlin:20120227T000000
DTSTAMP:20120313T142416Z
SEQUENCE:4
END:VEVENT
END:VCALENDAR
'
,
),
),
);
function
testQueryTimerange
()
{
$request
=
new
HTTP\Request
(
'REPORT'
,
'/calendars/user1/calendar1'
,
[
'Content-Type'
=>
'application/xml'
,
'Depth'
=>
'1'
,
]
);
$request
->
setBody
(
'<?xml version="1.0" encoding="utf-8" ?>
<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<C:calendar-data>
<C:expand start="20120226T220000Z" end="20120228T225959Z"/>
</C:calendar-data>
<D:getetag/>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:time-range start="20120226T220000Z" end="20120228T225959Z"/>
</C:comp-filter>
</C:comp-filter>
</C:filter>
</C:calendar-query>'
);
$response
=
$this
->
request
(
$request
);
if
(
strpos
(
$response
->
body
,
'BEGIN:VCALENDAR'
)
===
false
)
{
$this
->
fail
(
'Got no events instead of 1. Output: '
.
$response
->
body
);
}
// Everts super awesome xml parser.
$body
=
substr
(
$response
->
body
,
$start
=
strpos
(
$response
->
body
,
'BEGIN:VCALENDAR'
),
strpos
(
$response
->
body
,
'END:VCALENDAR'
)
-
$start
+
13
);
$body
=
str_replace
(
' '
,
''
,
$body
);
$vObject
=
VObject\Reader
::
read
(
$body
);
// We expect 1 event
$this
->
assertEquals
(
1
,
count
(
$vObject
->
VEVENT
),
'We got 0 events instead of 1. Output: '
.
$body
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sun, Dec 22, 3:07 AM (5 d, 8 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
914762
Default Alt Text
GetEventsByTimerangeTest.php (2 KB)
Attached To
rDAVCAL DokuWiki DAVCal PlugIn
Event Timeline
Log In to Comment