Blame view

sources/3rdparty/sabre/vobject/tests/Sabre/VObject/Issue50Test.php 2.99 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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
  <?php
  
  namespace Sabre\VObject;
  
  use
      DateTime,
      DateTimeZone;
  
  class Issue50Test extends \PHPUnit_Framework_TestCase {
  
      function testExpand() {
  
          $input = <<<ICS
  BEGIN:VCALENDAR
  VERSION:2.0
  PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
  BEGIN:VTIMEZONE
  TZID:Europe/Brussels
  X-LIC-LOCATION:Europe/Brussels
  BEGIN:DAYLIGHT
  TZOFFSETFROM:+0100
  TZOFFSETTO:+0200
  TZNAME:CEST
  DTSTART:19700329T020000
  RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
  END:DAYLIGHT
  BEGIN:STANDARD
  TZOFFSETFROM:+0200
  TZOFFSETTO:+0100
  TZNAME:CET
  DTSTART:19701025T030000
  RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
  END:STANDARD
  END:VTIMEZONE
  BEGIN:VEVENT
  CREATED:20130705T142510Z
  LAST-MODIFIED:20130715T132556Z
  DTSTAMP:20130715T132556Z
  UID:1aef0b27-3d92-4581-829a-11999dd36724
  SUMMARY:Werken
  RRULE:FREQ=DAILY;COUNT=5
  DTSTART;TZID=Europe/Brussels:20130715T090000
  DTEND;TZID=Europe/Brussels:20130715T170000
  LOCATION:Job
  DESCRIPTION:Vrij
  X-MOZ-GENERATION:9
  END:VEVENT
  BEGIN:VEVENT
  CREATED:20130715T081654Z
  LAST-MODIFIED:20130715T110931Z
  DTSTAMP:20130715T110931Z
  UID:1aef0b27-3d92-4581-829a-11999dd36724
  SUMMARY:Werken
  RECURRENCE-ID;TZID=Europe/Brussels:20130719T090000
  DTSTART;TZID=Europe/Brussels:20130719T070000
  DTEND;TZID=Europe/Brussels:20130719T150000
  SEQUENCE:1
  LOCATION:Job
  DESCRIPTION:Vrij
  X-MOZ-GENERATION:1
  END:VEVENT
  BEGIN:VEVENT
  CREATED:20130715T111654Z
  LAST-MODIFIED:20130715T132556Z
  DTSTAMP:20130715T132556Z
  UID:1aef0b27-3d92-4581-829a-11999dd36724
  SUMMARY:Werken
  RECURRENCE-ID;TZID=Europe/Brussels:20130716T090000
  DTSTART;TZID=Europe/Brussels:20130716T070000
  DTEND;TZID=Europe/Brussels:20130716T150000
  SEQUENCE:1
  LOCATION:Job
  X-MOZ-GENERATION:2
  END:VEVENT
  BEGIN:VEVENT
  CREATED:20130715T125942Z
  LAST-MODIFIED:20130715T130023Z
  DTSTAMP:20130715T130023Z
  UID:1aef0b27-3d92-4581-829a-11999dd36724
  SUMMARY:Werken
  RECURRENCE-ID;TZID=Europe/Brussels:20130717T090000
  DTSTART;TZID=Europe/Brussels:20130717T070000
  DTEND;TZID=Europe/Brussels:20130717T150000
  SEQUENCE:1
  LOCATION:Job
  X-MOZ-GENERATION:3
  END:VEVENT
  BEGIN:VEVENT
  CREATED:20130715T130024Z
  LAST-MODIFIED:20130715T130034Z
  DTSTAMP:20130715T130034Z
  UID:1aef0b27-3d92-4581-829a-11999dd36724
  SUMMARY:Werken
  RECURRENCE-ID;TZID=Europe/Brussels:20130718T090000
  DTSTART;TZID=Europe/Brussels:20130718T090000
  DTEND;TZID=Europe/Brussels:20130718T170000
  LOCATION:Job
  X-MOZ-GENERATION:5
  DESCRIPTION:Vrij
  END:VEVENT
  END:VCALENDAR
  ICS;
  
          $vcal = Reader::read($input);
          $this->assertInstanceOf('Sabre\\VObject\\Component\\VCalendar', $vcal);
  
          $it = new RecurrenceIterator($vcal, '1aef0b27-3d92-4581-829a-11999dd36724');
  
          $result = array();
          foreach($it as $instance) {
  
              $result[] = $instance;
  
          }
  
          $tz = new DateTimeZone('Europe/Brussels');
  
          $this->assertEquals(array(
              new DateTime('2013-07-15 09:00:00', $tz),
              new DateTime('2013-07-16 07:00:00', $tz),
              new DateTime('2013-07-17 07:00:00', $tz),
              new DateTime('2013-07-18 09:00:00', $tz),
              new DateTime('2013-07-19 07:00:00', $tz),
          ), $result);
  
      }
  
  }