1<?php 2/** 3 * Unit tests Horde_ActiveSync_Message_Appointment objects. 4 * 5 * @author Michael J. Rubinsky <mrubinsk@horde.org> 6 * @category Horde 7 * @package ActiveSync 8 */ 9class Horde_ActiveSync_InviteTest extends Horde_Test_Case 10{ 11 protected $_oldtz; 12 13 public function setUp() 14 { 15 $this->_oldtz = date_default_timezone_get(); 16 date_default_timezone_set('America/New_York'); 17 } 18 19 public function tearDown() 20 { 21 date_default_timezone_set($this->_oldtz); 22 } 23 24 /** 25 * Test creating a Horde_ActiveSync_Message_MeetingRequest from a MIME Email 26 */ 27 public function testInvite() 28 { 29 $this->markTestIncomplete('Has issues on 32bit systems'); 30 $fixture = file_get_contents(__DIR__ . '/fixtures/invitation_one.eml'); 31 $mime = Horde_Mime_Part::parseMessage($fixture); 32 $msg = new Horde_ActiveSync_Message_MeetingRequest(); 33 foreach ($mime->contentTypeMap() as $id => $type) { 34 if ($type == 'text/calendar') { 35 $vcal = new Horde_Icalendar(); 36 $vcal->parseVcalendar($mime->getPart($id)->getContents()); 37 $msg->fromvEvent($vcal); 38 break; 39 } 40 } 41 42 $stream = fopen('php://memory', 'wb+'); 43 $encoder = new Horde_ActiveSync_Wbxml_Encoder($stream); 44 $msg->encodeStream($encoder); 45 rewind($stream); 46 $results = stream_get_contents($stream); 47 fclose($stream); 48 49 $stream = fopen(__DIR__ . '/fixtures/meeting_request_one.wbxml', 'r+'); 50 $expected = ''; 51 // Using file_get_contents or even fread mangles the binary data for some 52 // reason. 53 while ($line = fgets($stream)) { 54 $expected .= $line; 55 } 56 fclose($stream); 57 $this->assertEquals($expected, $results); 58 } 59 60}