public function testSearchEvents() { $allUsers = Tinebase_User::getInstance()->getFullUsers(''); xhprof_enable(); $numSearches = 0; foreach ($allUsers as $user) { if ($numSearches > 5) { break; } echo "getting month view for {$user->accountDisplayName}\n"; $filterData = array(array('field' => 'container_id', 'operator' => 'in', 'value' => array('/personal/' . $user->getId(), '/shared')), array('field' => 'period', 'operator' => 'within', 'value' => array('from' => '2010-03-01 00:00:00', 'until' => '2010-04-01 00:00:00'))); // $filter = new Calendar_Model_EventFilter($filterData); // $events = Calendar_Controller_Event::getInstance()->search($filter, NULL, FALSE); $this->_json->searchEvents($filterData, NULL); $numSearches += 1; } $xhprof_data = xhprof_disable(); //Tinebase_Core::getDbProfiling(); $XHPROF_ROOT = '/opt/local/www/php5-xhprof'; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php"; include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_tine20"); echo "http://localhost/xhprof_html/index.php?run={$run_id}&source=xhprof_tine20 \n"; print_r(Tinebase_Record_Abstract::$cns); }
/** * testRenameResource * * @see 0010106: rename resource does not update container name */ public function testRenameResource() { $resource = $this->_getResource(); $createResource = Calendar_Controller_Resource::getInstance()->create($resource); $calenderFrontend = new Calendar_Frontend_Json(); $resourceArrayFromDB = $calenderFrontend->getResource($createResource->getId()); $resourceArrayFromDB['name'] = 'Other Room'; $calenderFrontend->saveResource($resourceArrayFromDB); $containerFrontend = new Tinebase_Frontend_Json_Container(); $result = $containerFrontend->getContainer('Calendar', Tinebase_Model_Container::TYPE_SHARED, ''); foreach ($result as $container) { if ($container['id'] != $createResource->container_id) { continue; } $this->assertEquals($container['name'], 'Other Room'); } }
/** * testMeAsAttenderFilter */ public function testMeAsAttenderFilter() { $eventData = $this->testCreateEvent(); $filter = array(array('field' => 'container_id', 'operator' => 'equals', 'value' => $this->_testCalendar->getId()), array('field' => 'attender', 'operator' => 'equals', 'value' => array('user_type' => Calendar_Model_Attender::USERTYPE_USER, 'user_id' => Addressbook_Model_Contact::CURRENTCONTACT))); $searchResultData = $this->_uit->searchEvents($filter, array()); $resultEventData = $searchResultData['results'][0]; $this->_assertJsonEvent($eventData, $resultEventData, 'failed to filter for me as attender'); }
/** * testGetRelations * * @see 0009542: load event relations on demand */ public function testGetRelations() { $contact = Addressbook_Controller_Contact::getInstance()->create(new Addressbook_Model_Contact(array('n_family' => 'Contact for relations test'))); $eventData = $this->_getEvent()->toArray(); $eventData['relations'] = array(array('own_model' => 'Calendar_Model_Event', 'own_backend' => 'Sql', 'own_id' => 0, 'related_degree' => Tinebase_Model_Relation::DEGREE_SIBLING, 'type' => '', 'related_backend' => 'Sql', 'related_id' => $contact->getId(), 'related_model' => 'Addressbook_Model_Contact', 'remark' => NULL)); $event = $this->_uit->saveEvent($eventData); $tfj = new Tinebase_Frontend_Json(); $relations = $tfj->getRelations('Calendar_Model_Event', $event['id']); $this->assertEquals(1, $relations['totalcount']); $this->assertEquals($contact->n_fn, $relations['results'][0]['related_record']['n_family'], print_r($relations['results'], true)); }
/** * assert private event * * @param string $searchMethod * @throws InvalidArgumentException */ protected function _assertPrivateEvent($searchMethod = 'search') { $persistentEvent = $this->_createEventInPersonasCalendar('pwulf', 'pwulf', 'pwulf', Calendar_Model_Event::CLASS_PRIVATE); if ($searchMethod === 'search') { $filterData = array(array('field' => 'id', 'operator' => 'equals', 'value' => $persistentEvent->getId())); $events = $this->_uit->search(new Calendar_Model_EventFilter($filterData), NULL, FALSE, FALSE); // assert json fe does not add history $json = new Calendar_Frontend_Json(); $resolvedEvents = $json->searchEvents($filterData, array()); $this->assertTrue(empty($resolvedEvents['results'][0]['notes'])); } else { if ($searchMethod === 'getMultiple') { $events = $this->_uit->getMultiple(array($persistentEvent->getId())); } else { throw new InvalidArgumentException('unknown search method: ' . $searchMethod); } } $this->assertTrue($events[0]->summary == ''); }
/** * search an private event of pwulf * -> test user has no private grant -> must be freebusy cleaned! */ public function testPrivateCleanup() { $persistentEvent = $this->_createEventInPersonasCalendar('pwulf', 'pwulf', 'pwulf', Calendar_Model_Event::CLASS_PRIVATE); $filterData = array(array('field' => 'id', 'operator' => 'equals', 'value' => $persistentEvent->getId())); $events = $this->_uit->search(new Calendar_Model_EventFilter($filterData), NULL, FALSE, FALSE); $this->assertTrue($events[0]->summary == ''); // assert json fe does not add history $json = new Calendar_Frontend_Json(); $resolvedEvents = $json->searchEvents($filterData, array()); $this->assertTrue(empty($resolvedEvents['results'][0]['notes'])); }