Skip to content
Snippets Groups Projects
Commit f99497a0 authored by Thomas Müller's avatar Thomas Müller
Browse files

test for search and unregister added

parent 2d597c22
No related branches found
No related tags found
No related merge requests found
......@@ -108,10 +108,10 @@ namespace OCP {
* @return array of contacts which are arrays of key-value-pairs
*/
public static function search($pattern, $searchProperties = array(), $options = array()) {
$result = array();
foreach(self::$address_books as $address_book) {
$result = $result + $address_book->search($pattern, $searchProperties, $options);
$r = $address_book->search($pattern, $searchProperties, $options);
$result = array_merge($result, $r);
}
return $result;
......
......@@ -41,8 +41,10 @@ class Test_Contacts extends PHPUnit_Framework_TestCase
// create mock for the addressbook
$stub = $this->getMock("SimpleAddressBook", array('getKey'));
// we expect getKey to be called once
$stub->expects($this->once())
// we expect getKey to be called twice:
// first time on register
// second time on un-register
$stub->expects($this->exactly(2))
->method('getKey');
// not enabled before register
......@@ -53,11 +55,13 @@ class Test_Contacts extends PHPUnit_Framework_TestCase
// contacts api shall be enabled
$this->assertTrue(OCP\Contacts::isEnabled());
}
//
// TODO: test unregister
//
// unregister the address book
OCP\Contacts::unregisterAddressBook($stub);
// not enabled after register
$this->assertFalse(OCP\Contacts::isEnabled());
}
public function testAddressBookEnumeration() {
// create mock for the addressbook
......@@ -76,5 +80,46 @@ class Test_Contacts extends PHPUnit_Framework_TestCase
$all_books = OCP\Contacts::getAddressBooks();
$this->assertEquals(1, count($all_books));
$this->assertEquals('A very simple Addressbook', $all_books['SIMPLE_ADDRESS_BOOK']);
}
public function testSearchInAddressBook() {
// create mock for the addressbook
$stub1 = $this->getMock("SimpleAddressBook1", array('getKey', 'getDisplayName', 'search'));
$stub2 = $this->getMock("SimpleAddressBook2", 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));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment