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