Browse Source
Merge pull request #12672 from LEDfan/cm-per-unit
Merge pull request #12672 from LEDfan/cm-per-unit
Fix Contactsmanager permission + unit testremotes/origin/fix-10825
2 changed files with 213 additions and 4 deletions
@ -0,0 +1,209 @@ |
|||
<?php |
|||
|
|||
|
|||
class Test_ContactsManager extends \Test\TestCase { |
|||
|
|||
/** @var \OC\ContactsManager */ |
|||
private $cm; |
|||
|
|||
protected function setUp() { |
|||
parent::setUp(); |
|||
$this->cm = new \OC\ContactsManager(); |
|||
} |
|||
|
|||
public function searchProvider(){ |
|||
$search1 = array( |
|||
0 => array( |
|||
'N' => array(0 => '', 1 => 'Jan', 2 => 'Jansen', 3 => '', 4 => '',), |
|||
'UID' => '04ada7f5-01f9-4309-9c82-6b555b2170ed', |
|||
'FN' => 'Jan Jansen', |
|||
'id' => '1', |
|||
'addressbook-key' => 'simple:1', |
|||
), |
|||
0 => array( |
|||
'N' => array(0 => '', 1 => 'Tom', 2 => 'Peeters', 3 => '', 4 => '',), |
|||
'UID' => '04ada7f5-01f9-4309-9c82-2345-2345--6b555b2170ed', |
|||
'FN' => 'Tom Peeters', |
|||
'id' => '2', |
|||
'addressbook-key' => 'simple:1', |
|||
), |
|||
); |
|||
|
|||
$search2 = array( |
|||
0 => array( |
|||
'N' => array(0 => '', 1 => 'fg', 2 => '', 3 => '', 4 => '',), |
|||
'UID' => '04ada234h5jh357f5-01f9-4309-9c82-6b555b2170ed', |
|||
'FN' => 'Jan Rompuy', |
|||
'id' => '1', |
|||
'addressbook-key' => 'simple:2', |
|||
), |
|||
0 => array( |
|||
'N' => array(0 => '', 1 => 'fg', 2 => '', 3 => '', 4 => '',), |
|||
'UID' => '04ada7f5-01f9-4309-345kj345j9c82-2345-2345--6b555b2170ed', |
|||
'FN' => 'Tim Peeters', |
|||
'id' => '2', |
|||
'addressbook-key' => 'simple:2', |
|||
), |
|||
); |
|||
|
|||
$expectedResult = array_merge($search1, $search2); |
|||
return array( |
|||
array( |
|||
$search1, |
|||
$search2, |
|||
$expectedResult |
|||
) |
|||
); |
|||
} |
|||
|
|||
/** |
|||
* @dataProvider searchProvider |
|||
*/ |
|||
public function testSearch($search1, $search2, $expectedResult ){ |
|||
$addressbook1 = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$addressbook1->expects($this->once()) |
|||
->method('search') |
|||
->willReturn($search1); |
|||
|
|||
$addressbook1->expects($this->any()) |
|||
->method('getKey') |
|||
->willReturn('simple:1'); |
|||
|
|||
$addressbook2 = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$addressbook2->expects($this->once()) |
|||
->method('search') |
|||
->willReturn($search2); |
|||
|
|||
$addressbook2->expects($this->any()) |
|||
->method('getKey') |
|||
->willReturn('simple:2'); |
|||
|
|||
|
|||
$this->cm->registerAddressBook($addressbook1); |
|||
$this->cm->registerAddressBook($addressbook2); |
|||
$result = $this->cm->search(''); |
|||
$this->assertEquals($expectedResult, $result); |
|||
} |
|||
|
|||
|
|||
public function testDeleteHavePermission(){ |
|||
$addressbook = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$addressbook->expects($this->any()) |
|||
->method('getPermissions') |
|||
->willReturn(\OCP\Constants::PERMISSION_ALL); |
|||
|
|||
$addressbook->expects($this->once()) |
|||
->method('delete') |
|||
->willReturn('returnMe'); |
|||
|
|||
|
|||
$this->cm->registerAddressBook($addressbook); |
|||
$result = $this->cm->delete(1, $addressbook->getKey()); |
|||
$this->assertEquals($result, 'returnMe'); |
|||
} |
|||
|
|||
public function testDeleteNoPermission(){ |
|||
$addressbook = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$addressbook->expects($this->any()) |
|||
->method('getPermissions') |
|||
->willReturn(\OCP\Constants::PERMISSION_READ); |
|||
|
|||
$addressbook->expects($this->never()) |
|||
->method('delete'); |
|||
|
|||
$this->cm->registerAddressBook($addressbook); |
|||
$result = $this->cm->delete(1, $addressbook->getKey()); |
|||
$this->assertEquals($result, null); |
|||
} |
|||
|
|||
public function testDeleteNoAddressbook(){ |
|||
$addressbook = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$addressbook->expects($this->never()) |
|||
->method('delete'); |
|||
|
|||
$this->cm->registerAddressBook($addressbook); |
|||
$result = $this->cm->delete(1, 'noaddressbook'); |
|||
$this->assertEquals($result, null); |
|||
|
|||
} |
|||
|
|||
public function testCreateOrUpdateHavePermission(){ |
|||
$addressbook = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$addressbook->expects($this->any()) |
|||
->method('getPermissions') |
|||
->willReturn(\OCP\Constants::PERMISSION_ALL); |
|||
|
|||
$addressbook->expects($this->once()) |
|||
->method('createOrUpdate') |
|||
->willReturn('returnMe'); |
|||
|
|||
$this->cm->registerAddressBook($addressbook); |
|||
$result = $this->cm->createOrUpdate(array(), $addressbook->getKey()); |
|||
$this->assertEquals($result, 'returnMe'); |
|||
} |
|||
|
|||
public function testCreateOrUpdateNoPermission(){ |
|||
$addressbook = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$addressbook->expects($this->any()) |
|||
->method('getPermissions') |
|||
->willReturn(\OCP\Constants::PERMISSION_READ); |
|||
|
|||
$addressbook->expects($this->never()) |
|||
->method('createOrUpdate'); |
|||
|
|||
$this->cm->registerAddressBook($addressbook); |
|||
$result = $this->cm->createOrUpdate(array(), $addressbook->getKey()); |
|||
$this->assertEquals($result, null); |
|||
|
|||
} |
|||
|
|||
public function testCreateOrUpdateNOAdressbook(){ |
|||
$addressbook = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$addressbook->expects($this->never()) |
|||
->method('createOrUpdate'); |
|||
|
|||
$this->cm->registerAddressBook($addressbook); |
|||
$result = $this->cm->createOrUpdate(array(), 'noaddressbook'); |
|||
$this->assertEquals($result, null); |
|||
} |
|||
|
|||
public function testIsEnabledIfNot(){ |
|||
$result = $this->cm->isEnabled(); |
|||
$this->assertFalse($result); |
|||
} |
|||
|
|||
public function testIsEnabledIfSo(){ |
|||
$addressbook = $this->getMockBuilder('\OCP\IAddressBook') |
|||
->disableOriginalConstructor() |
|||
->getMock(); |
|||
|
|||
$this->cm->registerAddressBook($addressbook); |
|||
$result = $this->cm->isEnabled(); |
|||
$this->assertTrue($result); |
|||
} |
|||
|
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue