public function testEncodingSimpleExceptions() { $this->markTestSkipped('Needs updated fixture.'); $l = new Horde_Test_Log(); $logger = $l->getLogger(); //$logger = new Horde_Log_Logger(new Horde_Log_Handler_Stream(fopen('/tmp/test.log', 'a'))); // Every other week recurrence, on thursday, no end. $r = new Horde_Date_Recurrence('2011-12-01T15:00:00'); $r->setRecurType(Horde_Date_Recurrence::RECUR_WEEKLY); $r->setRecurInterval(2); $r->setRecurOnDay(Horde_Date::MASK_THURSDAY); $r->addException(2011, 12, 29); $e = new Horde_ActiveSync_Message_Exception(); $d = new Horde_Date('2011-12-29T15:00:00'); $e->setExceptionStartTime($d); $e->deleted = true; $appt = new Horde_ActiveSync_Message_Appointment(array('logger' => $logger)); $appt->setSubject('Event Title'); $appt->setBody('Event Description'); $appt->setLocation('Philadelphia, PA'); $start = new Horde_Date('2011-12-01T15:00:00'); $appt->setDatetime(array('start' => $start, 'end' => new Horde_Date('2011-12-01T16:00:00'), 'allday' => false)); $appt->setTimezone($start); $appt->setSensitivity(Horde_ActiveSync_Message_Appointment::SENSITIVITY_PERSONAL); $appt->setBusyStatus(Horde_ActiveSync_Message_Appointment::BUSYSTATUS_BUSY); $appt->setDTStamp($start->timestamp()); $appt->setRecurrence($r); $appt->addException($e); $stream = fopen('php://memory', 'w+'); $encoder = new Horde_ActiveSync_Wbxml_Encoder($stream); $encoder->setLogger($logger); $encoder->startTag(Horde_ActiveSync::SYNC_DATA); $appt->encodeStream($encoder); $encoder->endTag(); $fixture = file_get_contents(__DIR__ . '/fixtures/simpleexception.wbxml'); rewind($stream); $results = stream_get_contents($stream); fclose($stream); $this->assertEquals($fixture, $results); }
public function testAlldayEncoding() { $l = new Horde_Test_Log(); $logger = $l->getLogger(); // Check that the encoded wbxml looks correct. $stream_out = fopen('php://memory', 'w+'); $encoder = new Horde_ActiveSync_Wbxml_Encoder($stream_out); $message = new Horde_ActiveSync_Message_Appointment(array('logger' => $logger, 'protocolversion' => Horde_ActiveSync::VERSION_FOURTEEN)); $message->setSubject('Test Event'); $message->alldayevent = true; $start = new Horde_Date('1970-03-20T00:00:00', 'America/New_York'); $end = new Horde_Date('1970-03-21T00:00:00', 'America/New_York'); $message->starttime = $start; $message->endtime = $end; $message->setTimezone($start); $message->meetingstatus = Horde_ActiveSync_Message_Appointment::MEETING_NOT_MEETING; $message->encodeStream($encoder); $fixture = file_get_contents(__DIR__ . '/fixtures/allday_appointment.wbxml'); rewind($stream_out); $this->assertEquals($fixture, stream_get_contents($stream_out)); // Make sure EAS versions work properly. rewind($stream_out); $message = new Horde_ActiveSync_Message_Appointment(array('logger' => $logger, 'protocolversion' => Horde_ActiveSync::VERSION_FOURTEEN)); $decoder = new Horde_ActiveSync_Wbxml_Decoder($stream_out); $decoder->getElementStartTag(Horde_ActiveSync::SYNC_DATA); $message->decodeStream($decoder); $end = $message->endtime; $end->setTimezone('America/New_York'); $start->setTimezone('America/New_York'); $this->assertEquals('1970-03-21 00:00:00', (string) $end); $this->assertEquals('1970-03-20 00:00:00', (string) $start); rewind($stream_out); $message = new Horde_ActiveSync_Message_Appointment(array('logger' => $logger, 'protocolversion' => Horde_ActiveSync::VERSION_SIXTEEN)); $decoder = new Horde_ActiveSync_Wbxml_Decoder($stream_out); $decoder->getElementStartTag(Horde_ActiveSync::SYNC_DATA); $message->decodeStream($decoder); $end = $message->endtime; $end->setTimezone('America/New_York'); $start->setTimezone('America/New_York'); $this->assertEquals('1970-03-21 00:00:00', (string) $end); $this->assertEquals('1970-03-20 00:00:00', (string) $start); }