mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-26 21:52:49 +00:00
122 lines
3.8 KiB
PHP
122 lines
3.8 KiB
PHP
<?php
|
|
|
|
namespace Sabre\CalDAV;
|
|
|
|
use Sabre\VObject;
|
|
|
|
class CalendarQueryVAlarmTest extends \PHPUnit_Framework_TestCase {
|
|
|
|
/**
|
|
* This test is specifically for a time-range query on a VALARM, contained
|
|
* in a VEVENT that's recurring
|
|
*/
|
|
function testValarm() {
|
|
|
|
$vcalendar = new VObject\Component\VCalendar();
|
|
|
|
$vevent = $vcalendar->createComponent('VEVENT');
|
|
$vevent->RRULE = 'FREQ=MONTHLY';
|
|
$vevent->DTSTART = '20120101T120000Z';
|
|
$vevent->UID = 'bla';
|
|
|
|
$valarm = $vcalendar->createComponent('VALARM');
|
|
$valarm->TRIGGER = '-P15D';
|
|
$vevent->add($valarm);
|
|
|
|
|
|
$vcalendar->add($vevent);
|
|
|
|
$filter = array(
|
|
'name' => 'VCALENDAR',
|
|
'is-not-defined' => false,
|
|
'time-range' => null,
|
|
'prop-filters' => array(),
|
|
'comp-filters' => array(
|
|
array(
|
|
'name' => 'VEVENT',
|
|
'is-not-defined' => false,
|
|
'time-range' => null,
|
|
'prop-filters' => array(),
|
|
'comp-filters' => array(
|
|
array(
|
|
'name' => 'VALARM',
|
|
'is-not-defined' => false,
|
|
'prop-filters' => array(),
|
|
'comp-filters' => array(),
|
|
'time-range' => array(
|
|
'start' => new \DateTime('2012-05-10'),
|
|
'end' => new \DateTime('2012-05-20'),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
$validator = new CalendarQueryValidator();
|
|
$this->assertTrue($validator->validate($vcalendar, $filter));
|
|
|
|
$vcalendar = new VObject\Component\VCalendar();
|
|
|
|
// A limited recurrence rule, should return false
|
|
$vevent = $vcalendar->createComponent('VEVENT');
|
|
$vevent->RRULE = 'FREQ=MONTHLY;COUNT=1';
|
|
$vevent->DTSTART = '20120101T120000Z';
|
|
$vevent->UID = 'bla';
|
|
|
|
$valarm = $vcalendar->createComponent('VALARM');
|
|
$valarm->TRIGGER = '-P15D';
|
|
$vevent->add($valarm);
|
|
|
|
$vcalendar->add($vevent);
|
|
|
|
$this->assertFalse($validator->validate($vcalendar, $filter));
|
|
}
|
|
|
|
function testAlarmWayBefore() {
|
|
|
|
$vcalendar = new VObject\Component\VCalendar();
|
|
|
|
$vevent = $vcalendar->createComponent('VEVENT');
|
|
$vevent->DTSTART = '20120101T120000Z';
|
|
$vevent->UID = 'bla';
|
|
|
|
$valarm = $vcalendar->createComponent('VALARM');
|
|
$valarm->TRIGGER = '-P2W1D';
|
|
$vevent->add($valarm);
|
|
|
|
$vcalendar->add($vevent);
|
|
|
|
$filter = array(
|
|
'name' => 'VCALENDAR',
|
|
'is-not-defined' => false,
|
|
'time-range' => null,
|
|
'prop-filters' => array(),
|
|
'comp-filters' => array(
|
|
array(
|
|
'name' => 'VEVENT',
|
|
'is-not-defined' => false,
|
|
'time-range' => null,
|
|
'prop-filters' => array(),
|
|
'comp-filters' => array(
|
|
array(
|
|
'name' => 'VALARM',
|
|
'is-not-defined' => false,
|
|
'prop-filters' => array(),
|
|
'comp-filters' => array(),
|
|
'time-range' => array(
|
|
'start' => new \DateTime('2011-12-10'),
|
|
'end' => new \DateTime('2011-12-20'),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
|
|
$validator = new CalendarQueryValidator();
|
|
$this->assertTrue($validator->validate($vcalendar, $filter));
|
|
|
|
}
|
|
|
|
}
|