Blame view

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