comparison vendor/sabre/vobject/tests/VObject/Component/VEventTest.php @ 7:430dbd5346f7

vendor sabre as distributed
author Charlie Root
date Sat, 13 Jan 2018 09:06:10 -0500
parents
children
comparison
equal deleted inserted replaced
6:cec75ba50afc 7:430dbd5346f7
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 $calendar = new VCalendar();
23
24 $vevent = $calendar->createComponent('VEVENT');
25 $vevent->DTSTART = '20111223T120000Z';
26 $tests[] = array($vevent, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), true);
27 $tests[] = array($vevent, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
28
29 $vevent2 = clone $vevent;
30 $vevent2->DTEND = '20111225T120000Z';
31 $tests[] = array($vevent2, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), true);
32 $tests[] = array($vevent2, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
33
34 $vevent3 = clone $vevent;
35 $vevent3->DURATION = 'P1D';
36 $tests[] = array($vevent3, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), true);
37 $tests[] = array($vevent3, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
38
39 $vevent4 = clone $vevent;
40 $vevent4->DTSTART = '20111225';
41 $vevent4->DTSTART['VALUE'] = 'DATE';
42 $tests[] = array($vevent4, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), true);
43 $tests[] = array($vevent4, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
44 // Event with no end date should be treated as lasting the entire day.
45 $tests[] = array($vevent4, new \DateTime('2011-12-25 16:00:00'), new \DateTime('2011-12-25 17:00:00'), true);
46
47
48 $vevent5 = clone $vevent;
49 $vevent5->DURATION = 'P1D';
50 $vevent5->RRULE = 'FREQ=YEARLY';
51 $tests[] = array($vevent5, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), true);
52 $tests[] = array($vevent5, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
53 $tests[] = array($vevent5, new \DateTime('2013-12-01'), new \DateTime('2013-12-31'), true);
54
55 $vevent6 = clone $vevent;
56 $vevent6->DTSTART = '20111225';
57 $vevent6->DTSTART['VALUE'] = 'DATE';
58 $vevent6->DTEND = '20111225';
59 $vevent6->DTEND['VALUE'] = 'DATE';
60
61 $tests[] = array($vevent6, new \DateTime('2011-01-01'), new \DateTime('2012-01-01'), true);
62 $tests[] = array($vevent6, new \DateTime('2011-01-01'), new \DateTime('2011-11-01'), false);
63
64 // Added this test to ensure that recurrence rules with no DTEND also
65 // get checked for the entire day.
66 $vevent7 = clone $vevent;
67 $vevent7->DTSTART = '20120101';
68 $vevent7->DTSTART['VALUE'] = 'DATE';
69 $vevent7->RRULE = 'FREQ=MONTHLY';
70 $tests[] = array($vevent7, new \DateTime('2012-02-01 15:00:00'), new \DateTime('2012-02-02'), true);
71 return $tests;
72
73 }
74
75 }
76