/**
  * create event with attachment
  *
  * @return multitype:Ambigous <Calendar_Frontend_WebDAV_Event, Calendar_Frontend_WebDAV_Event> Ambigous <Tinebase_Model_Tree_Node, Tinebase_Record_Interface, Tinebase_Record_Abstract, NULL, unknown>
  */
 public function createEventWithAttachment($count = 1)
 {
     $event = $this->testCreateRepeatingEvent();
     for ($i = 1; $i <= $count; $i++) {
         $suffix = $i > 1 ? $i : '';
         $agenda = fopen("php://temp", 'r+');
         fputs($agenda, "HELLO WORLD{$suffix}");
         rewind($agenda);
         $attachmentController = Tinebase_FileSystem_RecordAttachments::getInstance();
         $attachmentNode = $attachmentController->addRecordAttachment($event->getRecord(), "agenda{$suffix}.html", $agenda);
     }
     $event = new Calendar_Frontend_WebDAV_Event($event->getContainer(), $event->getRecord()->getId());
     return $event;
 }
 /**
  * test getCreateFile
  * 
  * @return Calendar_Frontend_WebDAV_Event
  */
 public function testCreateFile()
 {
     $vcalendarStream = $this->_getVCalendar(dirname(__FILE__) . '/../../Import/files/lightning.ics');
     $container = new Calendar_Frontend_WebDAV_Container($this->objects['initialContainer']);
     $id = Tinebase_Record_Abstract::generateUID();
     $etag = $container->createFile("{$id}.ics", $vcalendarStream);
     $event = new Calendar_Frontend_WebDAV_Event($this->objects['initialContainer'], "{$id}.ics");
     $record = $event->getRecord();
     $this->assertTrue($event instanceof Calendar_Frontend_WebDAV_Event);
     $this->assertEquals($id, $record->getId(), 'ID mismatch');
     return $event;
 }
 /**
  * createRecurringCalDavEvent
  * 
  * @return Calendar_Frontend_WebDAV_Event
  */
 protected function _createRecurringCalDavEvent()
 {
     $_SERVER['HTTP_USER_AGENT'] = 'Mac_OS_X/10.9 (13A603) CalendarAgent/174';
     self::flushMailer();
     $vcalendar = Calendar_Frontend_WebDAV_EventTest::getVCalendar(dirname(__FILE__) . '/../Import/files/apple_ical_remind_part1.ics');
     $id = Tinebase_Record_Abstract::generateUID();
     $event = Calendar_Frontend_WebDAV_Event::create($this->_getTestCalendar(), "{$id}.ics", $vcalendar);
     return $event;
 }
예제 #4
0
 /**
  * NOTE: As noted in {@see testMoveOriginPersonalToShared} we can't delete/decline for organizer in his
  *       personal cal because a move personal->shared would delete/decline the event.
  *       
  *       To support intensional delete/declines we allow the delte/decline only if ther is some
  *       time between this and the last update
  */
 public function testDeleteImplicitDeclineOrganizer()
 {
     $_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.21) Gecko/20110831 Lightning/1.0b2 Thunderbird/3.1.13';
     $vcalendar = $this->_getVCalendar(dirname(__FILE__) . '/../../Import/files/lightning.ics');
     $id = Tinebase_Record_Abstract::generateUID();
     $event = Calendar_Frontend_WebDAV_Event::create($this->objects['initialContainer'], "{$id}.ics", $vcalendar);
     // move event origin to shared (origin and display where the same)
     Calendar_Frontend_WebDAV_Event::create($this->objects['sharedContainer'], "{$id}.ics", stream_get_contents($event->get()));
     //         $oldEvent = new Calendar_Frontend_WebDAV_Event($this->objects['initialContainer'], "$id.ics");
     //         $oldEvent->delete();
     // wait some time
     $cbs = new Calendar_Backend_Sql();
     $cbs->updateMultiple(array($id), array('creation_time' => Tinebase_DateTime::now()->subMinute(5), 'last_modified_time' => Tinebase_DateTime::now()->subMinute(3)));
     $personalEvent = new Calendar_Frontend_WebDAV_Event($this->objects['initialContainer'], "{$id}.ics");
     $personalEvent->delete();
     $loadedEvent = new Calendar_Frontend_WebDAV_Event($this->objects['sharedContainer'], "{$id}.ics");
     $ownAttendee = Calendar_Model_Attender::getOwnAttender($loadedEvent->getRecord()->attendee);
     $this->assertEquals(Calendar_Model_Attender::STATUS_DECLINED, $ownAttendee->status, 'event must be declined');
 }