public function testSearchInAddressBook() { // create mock for the addressbook $stub1 = $this->getMockForAbstractClass("OCP\\IAddressBook", array('getKey', 'getDisplayName', 'search')); $stub2 = $this->getMockForAbstractClass("OCP\\IAddressBook", array('getKey', 'getDisplayName', 'search')); $searchResult1 = array(array('id' => 0, 'FN' => 'Frank Karlitschek', 'EMAIL' => 'a@b.c', 'GEO' => '37.386013;-122.082932'), array('id' => 5, 'FN' => 'Klaas Freitag', 'EMAIL' => array('d@e.f', 'g@h.i'))); $searchResult2 = array(array('id' => 0, 'FN' => 'Thomas Müller', 'EMAIL' => 'a@b.c'), array('id' => 5, 'FN' => 'Thomas Tanghus', 'EMAIL' => array('d@e.f', 'g@h.i'))); // setup return for method calls for $stub1 $stub1->expects($this->any())->method('getKey')->will($this->returnValue('SIMPLE_ADDRESS_BOOK1')); $stub1->expects($this->any())->method('getDisplayName')->will($this->returnValue('Address book ownCloud Inc')); $stub1->expects($this->any())->method('search')->will($this->returnValue($searchResult1)); // setup return for method calls for $stub2 $stub2->expects($this->any())->method('getKey')->will($this->returnValue('SIMPLE_ADDRESS_BOOK2')); $stub2->expects($this->any())->method('getDisplayName')->will($this->returnValue('Address book ownCloud Community')); $stub2->expects($this->any())->method('search')->will($this->returnValue($searchResult2)); // register the address books \OCP\Contacts::registerAddressBook($stub1); \OCP\Contacts::registerAddressBook($stub2); $all_books = \OCP\Contacts::getAddressBooks(); // assert the count - doesn't hurt $this->assertEquals(2, count($all_books)); // perform the search $result = \OCP\Contacts::search('x', array()); // we expect 4 hits $this->assertEquals(4, count($result)); }
\Sabre\VObject\Property::$classMap['ADR'] = '\\OC\\VObject\\CompoundProperty'; \Sabre\VObject\Property::$classMap['GEO'] = '\\OC\\VObject\\CompoundProperty'; \Sabre\VObject\Property::$classMap['ORG'] = '\\OC\\VObject\\CompoundProperty'; \OC::$server->getNavigationManager()->add(array('id' => 'contacts', 'order' => 10, 'href' => \OCP\Util::linkToRoute('contacts_index'), 'icon' => \OCP\Util::imagePath('contacts', 'contacts.svg'), 'name' => \OCP\Util::getL10N('contacts')->t('Contacts'))); $api = new API('contacts'); $api->connectHook('OC_User', 'post_createUser', '\\OCA\\Contacts\\Hooks', 'userCreated'); $api->connectHook('OC_User', 'post_deleteUser', '\\OCA\\Contacts\\Hooks', 'userDeleted'); $api->connectHook('OCA\\Contacts', 'pre_deleteAddressBook', '\\OCA\\Contacts\\Hooks', 'addressBookDeletion'); $api->connectHook('OCA\\Contacts', 'pre_deleteContact', '\\OCA\\Contacts\\Hooks', 'contactDeletion'); $api->connectHook('OCA\\Contacts', 'post_createContact', 'OCA\\Contacts\\Hooks', 'contactAdded'); $api->connectHook('OCA\\Contacts', 'post_updateContact', '\\OCA\\Contacts\\Hooks', 'contactUpdated'); $api->connectHook('OCA\\Contacts', 'scanCategories', '\\OCA\\Contacts\\Hooks', 'scanCategories'); $api->connectHook('OCA\\Contacts', 'indexProperties', '\\OCA\\Contacts\\Hooks', 'indexProperties'); $api->connectHook('OC_Calendar', 'getEvents', 'OCA\\Contacts\\Hooks', 'getBirthdayEvents'); $api->connectHook('OC_Calendar', 'getSources', 'OCA\\Contacts\\Hooks', 'getCalenderSources'); \OCP\Util::addscript('contacts', 'loader'); \OCP\Util::addscript('contacts', 'admin'); \OC_Search::registerProvider('OCA\\Contacts\\Search\\Provider'); //\OCP\Share::registerBackend('contact', 'OCA\Contacts\Share_Backend_Contact'); \OCP\Share::registerBackend('addressbook', 'OCA\\Contacts\\Share\\Addressbook', 'contact'); //\OCP\App::registerPersonal('contacts','personalsettings'); \OCP\App::registerAdmin('contacts', 'admin'); if (\OCP\User::isLoggedIn()) { $app = new App($api->getUserId()); $addressBooks = $app->getAddressBooksForUser(); foreach ($addressBooks as $addressBook) { if ($addressBook->isActive()) { \OCP\Contacts::registerAddressBook($addressBook->getSearchProvider()); } } }
\Sabre\VObject\Property::$classMap['X-EVOLUTION-FILE-AS'] = '\\OC\\VObject\\StringProperty'; \Sabre\VObject\Property::$classMap['N'] = '\\OC\\VObject\\CompoundProperty'; \Sabre\VObject\Property::$classMap['ADR'] = '\\OC\\VObject\\CompoundProperty'; \Sabre\VObject\Property::$classMap['GEO'] = '\\OC\\VObject\\CompoundProperty'; \Sabre\VObject\Property::$classMap['ORG'] = '\\OC\\VObject\\CompoundProperty'; \OC::$server->getNavigationManager()->add(array('id' => 'contacts', 'order' => 10, 'href' => \OCP\Util::linkToRoute('contacts_index'), 'icon' => \OCP\Util::imagePath('contacts', 'contacts.svg'), 'name' => \OCP\Util::getL10N('contacts')->t('Contacts'))); $api = new API('contacts'); $api->connectHook('OC_User', 'post_createUser', '\\OCA\\Contacts\\Hooks', 'userCreated'); $api->connectHook('OC_User', 'post_deleteUser', '\\OCA\\Contacts\\Hooks', 'userDeleted'); $api->connectHook('OCA\\Contacts', 'pre_deleteAddressBook', '\\OCA\\Contacts\\Hooks', 'addressBookDeletion'); $api->connectHook('OCA\\Contacts', 'pre_deleteContact', '\\OCA\\Contacts\\Hooks', 'contactDeletion'); $api->connectHook('OCA\\Contacts', 'post_createContact', 'OCA\\Contacts\\Hooks', 'contactAdded'); $api->connectHook('OCA\\Contacts', 'post_updateContact', '\\OCA\\Contacts\\Hooks', 'contactUpdated'); $api->connectHook('OCA\\Contacts', 'scanCategories', '\\OCA\\Contacts\\Hooks', 'scanCategories'); $api->connectHook('OCA\\Contacts', 'indexProperties', '\\OCA\\Contacts\\Hooks', 'indexProperties'); $api->connectHook('OC_Calendar', 'getEvents', 'OCA\\Contacts\\Hooks', 'getBirthdayEvents'); $api->connectHook('OC_Calendar', 'getSources', 'OCA\\Contacts\\Hooks', 'getCalenderSources'); \OCP\Util::addscript('contacts', 'loader'); \OC_Search::registerProvider('OCA\\Contacts\\SearchProvider'); //\OCP\Share::registerBackend('contact', 'OCA\Contacts\Share_Backend_Contact'); \OCP\Share::registerBackend('addressbook', 'OCA\\Contacts\\Share\\Addressbook', 'contact'); //\OCP\App::registerPersonal('contacts','personalsettings'); if (\OCP\User::isLoggedIn()) { $app = new App($api->getUserId()); $addressBooks = $app->getAddressBooksForUser(); foreach ($addressBooks as $addressBook) { if ($addressBook->isActive()) { \OCP\Contacts::registerAddressBook(new AddressbookProvider($addressBook)); } } }