adjust ShareeAPIController search test

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
Arthur Schiwon 2017-09-13 12:32:47 +02:00
parent 3d1d03a511
commit 38ff7eaece
No known key found for this signature in database
GPG Key ID: 7424F1874854DF23
2 changed files with 21 additions and 31 deletions

View File

@ -199,7 +199,9 @@ class ShareesAPIController extends OCSController {
list($result, $hasMoreResults) = $this->collaboratorSearch->search($search, $shareTypes, $lookup, $this->limit, $this->offset); list($result, $hasMoreResults) = $this->collaboratorSearch->search($search, $shareTypes, $lookup, $this->limit, $this->offset);
// extra treatment for 'exact' subarray, with a single merge expected keys might be lost // extra treatment for 'exact' subarray, with a single merge expected keys might be lost
$result['exact'] = array_merge($this->result['exact'], $result['exact']); if(isset($result['exact'])) {
$result['exact'] = array_merge($this->result['exact'], $result['exact']);
}
$this->result = array_merge($this->result, $result); $this->result = array_merge($this->result, $result);
$response = new DataResponse($this->result); $response = new DataResponse($this->result);
@ -223,6 +225,7 @@ class ShareesAPIController extends OCSController {
*/ */
protected function isRemoteSharingAllowed($itemType) { protected function isRemoteSharingAllowed($itemType) {
try { try {
// FIXME: static foo makes unit testing unnecessarily difficult
$backend = \OC\Share\Share::getBackend($itemType); $backend = \OC\Share\Share::getBackend($itemType);
return $backend->isShareTypeAllowed(Share::SHARE_TYPE_REMOTE); return $backend->isShareTypeAllowed(Share::SHARE_TYPE_REMOTE);
} catch (\Exception $e) { } catch (\Exception $e) {

View File

@ -250,14 +250,13 @@ class ShareesAPIControllerTest extends TestCase {
*/ */
public function testSearch($getData, $apiSetting, $enumSetting, $remoteSharingEnabled, $emailSharingEnabled, $shareTypes, $shareWithGroupOnly, $shareeEnumeration, $allowGroupSharing) { public function testSearch($getData, $apiSetting, $enumSetting, $remoteSharingEnabled, $emailSharingEnabled, $shareTypes, $shareWithGroupOnly, $shareeEnumeration, $allowGroupSharing) {
$search = isset($getData['search']) ? $getData['search'] : ''; $search = isset($getData['search']) ? $getData['search'] : '';
$itemType = isset($getData['itemType']) ? $getData['itemType'] : null; $itemType = isset($getData['itemType']) ? $getData['itemType'] : 'irrelevant';
$page = isset($getData['page']) ? $getData['page'] : 1; $page = isset($getData['page']) ? $getData['page'] : 1;
$perPage = isset($getData['perPage']) ? $getData['perPage'] : 200; $perPage = isset($getData['perPage']) ? $getData['perPage'] : 200;
$shareType = isset($getData['shareType']) ? $getData['shareType'] : null; $shareType = isset($getData['shareType']) ? $getData['shareType'] : null;
$config = $this->getMockBuilder('OCP\IConfig') /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject $config */
->disableOriginalConstructor() $config = $this->createMock(IConfig::class);
->getMock();
$config->expects($this->exactly(2)) $config->expects($this->exactly(2))
->method('getAppValue') ->method('getAppValue')
->with('core', $this->anything(), $this->anything()) ->with('core', $this->anything(), $this->anything())
@ -270,41 +269,29 @@ class ShareesAPIControllerTest extends TestCase {
->method('allowGroupSharing') ->method('allowGroupSharing')
->willReturn($allowGroupSharing); ->willReturn($allowGroupSharing);
/** @var IRequest|\PHPUnit_Framework_MockObject_MockObject $request */
$request = $this->createMock(IRequest::class);
/** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject $urlGenerator */
$urlGenerator = $this->createMock(IURLGenerator::class);
/** @var \PHPUnit_Framework_MockObject_MockObject|\OCA\Files_Sharing\Controller\ShareesAPIController $sharees */ /** @var \PHPUnit_Framework_MockObject_MockObject|\OCA\Files_Sharing\Controller\ShareesAPIController $sharees */
$sharees = $this->getMockBuilder('\OCA\Files_Sharing\Controller\ShareesAPIController') $sharees = $this->getMockBuilder('\OCA\Files_Sharing\Controller\ShareesAPIController')
->setConstructorArgs([ ->setConstructorArgs([
'files_sharing', 'files_sharing',
$this->getMockBuilder('OCP\IRequest')->disableOriginalConstructor()->getMock(), $request,
$this->groupManager,
$this->userManager,
$this->contactsManager,
$config, $config,
$this->session, $urlGenerator,
$this->getMockBuilder('OCP\IURLGenerator')->disableOriginalConstructor()->getMock(),
$this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(),
$this->shareManager, $this->shareManager,
$this->clientService, $this->collaboratorSearch
$this->cloudIdManager
]) ])
->setMethods(array('searchSharees', 'isRemoteSharingAllowed', 'shareProviderExists')) ->setMethods(array('isRemoteSharingAllowed', 'shareProviderExists'))
->getMock(); ->getMock();
$sharees->expects($this->once())
->method('searchSharees')
->willReturnCallback(function
($isearch, $iitemType, $ishareTypes, $ipage, $iperPage)
use ($search, $itemType, $shareTypes, $page, $perPage) {
// We are doing strict comparisons here, so we can differ 0/'' and null on shareType/itemType $this->collaboratorSearch->expects($this->once())
$this->assertSame($search, $isearch); ->method('search')
$this->assertSame($itemType, $iitemType); ->with($search, $shareTypes, $this->anything(), $perPage, $this->invokePrivate($sharees, 'offset'))
$this->assertSame(count($shareTypes), count($ishareTypes)); ->willReturn([[], false]);
foreach($shareTypes as $expected) {
$this->assertTrue(in_array($expected, $ishareTypes));
}
$this->assertSame($page, $ipage);
$this->assertSame($perPage, $iperPage);
return new Http\DataResponse();
});
$sharees->expects($this->any()) $sharees->expects($this->any())
->method('isRemoteSharingAllowed') ->method('isRemoteSharingAllowed')
->with($itemType) ->with($itemType)