BrokerTimezoneInParseEventInfoWithoutMasterTest.php 2.2 KB

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