Merge pull request #12672 from LEDfan/cm-per-unit
Fix Contactsmanager permission + unit test
This commit is contained in:
commit
5609d421cd
|
@ -63,10 +63,10 @@ namespace OC {
|
|||
}
|
||||
|
||||
if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_DELETE) {
|
||||
return null;
|
||||
return $addressBook->delete($id);
|
||||
}
|
||||
|
||||
return $addressBook->delete($id);
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -84,10 +84,10 @@ namespace OC {
|
|||
}
|
||||
|
||||
if ($addressBook->getPermissions() & \OCP\Constants::PERMISSION_CREATE) {
|
||||
return null;
|
||||
return $addressBook->createOrUpdate($properties);
|
||||
}
|
||||
|
||||
return $addressBook->createOrUpdate($properties);
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue