/** * 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; }
/** * 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; }
/** * 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'); }