78 lines
2.2 KiB
PHP
78 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace Sabre\VObject\ITip;
|
|
|
|
use Sabre\VObject\Reader;
|
|
|
|
class BrokerTimezoneInParseEventInfoWithoutMasterTest extends \PHPUnit_Framework_TestCase {
|
|
|
|
function testTimezoneInParseEventInfoWithoutMaster()
|
|
{
|
|
$calendar = <<<ICS
|
|
BEGIN:VCALENDAR
|
|
VERSION:2.0
|
|
PRODID:-//Apple Inc.//Mac OS X 10.9.5//EN
|
|
CALSCALE:GREGORIAN
|
|
BEGIN:VTIMEZONE
|
|
TZID:Europe/Minsk
|
|
BEGIN:DAYLIGHT
|
|
TZOFFSETFROM:+0200
|
|
RRULE:FREQ=YEARLY;UNTIL=20100328T000000Z;BYMONTH=3;BYDAY=-1SU
|
|
DTSTART:19930328T020000
|
|
TZNAME:GMT+3
|
|
TZOFFSETTO:+0300
|
|
END:DAYLIGHT
|
|
BEGIN:STANDARD
|
|
TZOFFSETFROM:+0200
|
|
DTSTART:20110327T020000
|
|
TZNAME:GMT+3
|
|
TZOFFSETTO:+0300
|
|
RDATE:20110327T020000
|
|
END:STANDARD
|
|
END:VTIMEZONE
|
|
BEGIN:VEVENT
|
|
CREATED:20160331T163031Z
|
|
UID:B9301437-417C-4136-8DB3-8D1555863791
|
|
DTEND;TZID=Europe/Minsk:20160405T100000
|
|
TRANSP:OPAQUE
|
|
ATTENDEE;CN=User Invitee;CUTYPE=INDIVIDUAL;EMAIL=invitee@test.com;PARTSTAT=
|
|
ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:invitee@test.com
|
|
ATTENDEE;CN=User Organizer;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:organ
|
|
izer@test.com
|
|
SUMMARY:Event title
|
|
DTSTART;TZID=Europe/Minsk:20160405T090000
|
|
DTSTAMP:20160331T164108Z
|
|
ORGANIZER;CN=User Organizer:mailto:organizer@test.com
|
|
SEQUENCE:6
|
|
RECURRENCE-ID;TZID=Europe/Minsk:20160405T090000
|
|
END:VEVENT
|
|
BEGIN:VEVENT
|
|
CREATED:20160331T163031Z
|
|
UID:B9301437-417C-4136-8DB3-8D1555863791
|
|
DTEND;TZID=Europe/Minsk:20160406T100000
|
|
TRANSP:OPAQUE
|
|
ATTENDEE;CN=User Invitee;CUTYPE=INDIVIDUAL;EMAIL=invitee@test.com;PARTSTAT=
|
|
ACCEPTED;ROLE=REQ-PARTICIPANT:mailto:invitee@test.com
|
|
ATTENDEE;CN=User Organizer;CUTYPE=INDIVIDUAL;PARTSTAT=ACCEPTED:mailto:organ
|
|
izer@test.com
|
|
SUMMARY:Event title
|
|
DTSTART;TZID=Europe/Minsk:20160406T090000
|
|
DTSTAMP:20160331T165845Z
|
|
ORGANIZER;CN=User Organizer:mailto:organizer@test.com
|
|
SEQUENCE:6
|
|
RECURRENCE-ID;TZID=Europe/Minsk:20160406T090000
|
|
END:VEVENT
|
|
END:VCALENDAR
|
|
ICS;
|
|
|
|
$calendar = Reader::read($calendar);
|
|
$broker = new Broker();
|
|
|
|
$reflectionMethod = new \ReflectionMethod($broker, 'parseEventInfo');
|
|
$reflectionMethod->setAccessible(true);
|
|
$data = $reflectionMethod->invoke($broker, $calendar);
|
|
$this->assertInstanceOf('DateTimeZone', $data['timezone']);
|
|
$this->assertEquals($data['timezone']->getName(), 'Europe/Minsk');
|
|
}
|
|
}
|