Skip to content

Commit 98e8508

Browse files
incorrect work with timezone without event master
1 parent 5b92c27 commit 98e8508

File tree

2 files changed

+78
-1
lines changed

2 files changed

+78
-1
lines changed

lib/ITip/Broker.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ protected function parseEventInfo(VCalendar $calendar = null) {
826826
$organizerName = null;
827827
$organizerForceSend = null;
828828
$sequence = null;
829-
$timezone = null;
829+
$timezone = $calendar->VTIMEZONE ? $calendar->VTIMEZONE->getTimeZone() : null;
830830
$status = null;
831831
$organizerScheduleAgent = 'SERVER';
832832

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?php
2+
3+
namespace Sabre\VObject\ITip;
4+
5+
use Sabre\VObject\Reader;
6+
7+
class BrokerTimezoneInParseEventInfoWithoutMasterTest extends \PHPUnit_Framework_TestCase {
8+
9+
function testTimezoneInParseEventInfoWithoutMaster()
10+
{
11+
$calendar = <<<ICS
12+
BEGIN:VCALENDAR
13+
VERSION:2.0
14+
PRODID:-//Apple Inc.//Mac OS X 10.9.5//EN
15+
CALSCALE:GREGORIAN
16+
BEGIN:VTIMEZONE
17+
TZID:Europe/Minsk
18+
BEGIN:DAYLIGHT
19+
TZOFFSETFROM:+0200
20+
RRULE:FREQ=YEARLY;UNTIL=20100328T000000Z;BYMONTH=3;BYDAY=-1SU
21+
DTSTART:19930328T020000
22+
TZNAME:GMT+3
23+
TZOFFSETTO:+0300
24+
END:DAYLIGHT
25+
BEGIN:STANDARD
26+
TZOFFSETFROM:+0200
27+
DTSTART:20110327T020000
28+
TZNAME:GMT+3
29+
TZOFFSETTO:+0300
30+
RDATE:20110327T020000
31+
END:STANDARD
32+
END:VTIMEZONE
33+
BEGIN:VEVENT
34+
CREATED:20160331T163031Z
35+
UID:B9301437-417C-4136-8DB3-8D1555863791
36+
DTEND;TZID=Europe/Minsk:20160405T100000
37+
TRANSP:OPAQUE
38+
ATTENDEE;CN=User Invitee;CUTYPE=INDIVIDUAL;EMAIL=invitee@test.com;PARTSTAT=
39+
ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:invitee@test.com
40+
ATTENDEE;CN=User Organizer;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:organ
41+
izer@test.com
42+
SUMMARY:Event title
43+
DTSTART;TZID=Europe/Minsk:20160405T090000
44+
DTSTAMP:20160331T164108Z
45+
ORGANIZER;CN=User Organizer:mailto:organizer@test.com
46+
SEQUENCE:6
47+
RECURRENCE-ID;TZID=Europe/Minsk:20160405T090000
48+
END:VEVENT
49+
BEGIN:VEVENT
50+
CREATED:20160331T163031Z
51+
UID:B9301437-417C-4136-8DB3-8D1555863791
52+
DTEND;TZID=Europe/Minsk:20160406T100000
53+
TRANSP:OPAQUE
54+
ATTENDEE;CN=User Invitee;CUTYPE=INDIVIDUAL;EMAIL=invitee@test.com;PARTSTAT=
55+
ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:invitee@test.com
56+
ATTENDEE;CN=User Organizer;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:organ
57+
izer@test.com
58+
SUMMARY:Event title
59+
DTSTART;TZID=Europe/Minsk:20160406T090000
60+
DTSTAMP:20160331T165845Z
61+
ORGANIZER;CN=User Organizer:mailto:organizer@test.com
62+
SEQUENCE:6
63+
RECURRENCE-ID;TZID=Europe/Minsk:20160406T090000
64+
END:VEVENT
65+
END:VCALENDAR
66+
ICS;
67+
68+
$calendar = Reader::read($calendar);
69+
$broker = new Broker();
70+
71+
$reflectionMethod = new \ReflectionMethod($broker, 'parseEventInfo');
72+
$reflectionMethod->setAccessible(true);
73+
$data = $reflectionMethod->invoke($broker, $calendar);
74+
75+
$this->assertEquals($data['timezone']->getName(), 'Europe/Minsk');
76+
}
77+
}

0 commit comments

Comments
 (0)