]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/VObject/Component/VEventTest.php
Merge pull request #73 from CatoTH/master
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / VObject / Component / VEventTest.php
1 <?php
2
3 class Sabre_VObject_Component_VEventTest extends PHPUnit_Framework_TestCase {
4
5     /**
6      * @dataProvider timeRangeTestData
7      */
8     public function testInTimeRange(Sabre_VObject_Component_VEvent $vevent,$start,$end,$outcome) {
9
10         $this->assertEquals($outcome, $vevent->isInTimeRange($start, $end));
11
12     }
13
14     public function timeRangeTestData() {
15
16         $tests = array();
17
18         $vevent = new Sabre_VObject_Component_VEvent('VEVENT');
19         $vevent->DTSTART = '20111223T120000Z';
20         $tests[] = array($vevent, new DateTime('2011-01-01'), new DateTime('2012-01-01'), true);
21         $tests[] = array($vevent, new DateTime('2011-01-01'), new DateTime('2011-11-01'), false);
22
23         $vevent2 = clone $vevent;
24         $vevent2->DTEND = '20111225T120000Z';
25         $tests[] = array($vevent2, new DateTime('2011-01-01'), new DateTime('2012-01-01'), true);
26         $tests[] = array($vevent2, new DateTime('2011-01-01'), new DateTime('2011-11-01'), false);
27
28         $vevent3 = clone $vevent;
29         $vevent3->DURATION = 'P1D';
30         $tests[] = array($vevent3, new DateTime('2011-01-01'), new DateTime('2012-01-01'), true);
31         $tests[] = array($vevent3, new DateTime('2011-01-01'), new DateTime('2011-11-01'), false);
32
33         $vevent4 = clone $vevent;
34         $vevent4->DTSTART = '20111225';
35         $vevent4->DTSTART['VALUE'] = 'DATE';
36         $tests[] = array($vevent4, new DateTime('2011-01-01'), new DateTime('2012-01-01'), true);
37         $tests[] = array($vevent4, new DateTime('2011-01-01'), new DateTime('2011-11-01'), false);
38         // Event with no end date should be treated as lasting the entire day.
39         $tests[] = array($vevent4, new DateTime('2011-12-25 16:00:00'), new DateTime('2011-12-25 17:00:00'), true);
40
41
42         $vevent5 = clone $vevent;
43         $vevent5->DURATION = 'P1D';
44         $vevent5->RRULE = 'FREQ=YEARLY';
45         $tests[] = array($vevent5, new DateTime('2011-01-01'), new DateTime('2012-01-01'), true);
46         $tests[] = array($vevent5, new DateTime('2011-01-01'), new DateTime('2011-11-01'), false);
47         $tests[] = array($vevent5, new DateTime('2013-12-01'), new DateTime('2013-12-31'), true);
48
49         $vevent6 = clone $vevent;
50         $vevent6->DTSTART = '20111225';
51         $vevent6->DTSTART['VALUE'] = 'DATE';
52         $vevent6->DTEND   = '20111225';
53         $vevent6->DTEND['VALUE'] = 'DATE';
54         $tests[] = array($vevent6, new DateTime('2011-01-01'), new DateTime('2012-01-01'), true);
55         $tests[] = array($vevent6, new DateTime('2011-01-01'), new DateTime('2011-11-01'), false);
56
57         // Added this test to ensure that recurrence rules with no DTEND also 
58         // get checked for the entire day.
59         $vevent7 = clone $vevent;
60         $vevent7->DTSTART = '20120101';
61         $vevent7->DTSTART['VALUE'] = 'DATE';
62         $vevent7->RRULE = 'FREQ=MONTHLY';
63         $tests[] = array($vevent7, new DateTime('2012-02-01 15:00:00'), new DateTime('2012-02-02'), true);
64         return $tests;
65
66     }
67
68 }
69