Bump popovermenu item options and tests
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>pull/8824/head
parent
f4cec587d9
commit
62e1014b2e
@ -1,381 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Lukas Reschke
|
||||
* @copyright 2014 Lukas Reschke lukas@owncloud.com
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
namespace Tests\Settings\Controller;
|
||||
|
||||
use OC\Group\Group;
|
||||
use OC\Group\MetaData;
|
||||
use OC\Settings\Controller\GroupsController;
|
||||
use OC\User\User;
|
||||
use OCP\AppFramework\Http;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\IL10N;
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserSession;
|
||||
|
||||
/**
|
||||
* @package Tests\Settings\Controller
|
||||
*/
|
||||
class GroupsControllerTest extends \Test\TestCase {
|
||||
|
||||
/** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */
|
||||
private $groupManager;
|
||||
|
||||
/** @var IUserSession|\PHPUnit_Framework_MockObject_MockObject */
|
||||
private $userSession;
|
||||
|
||||
/** @var GroupsController */
|
||||
private $groupsController;
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
$this->groupManager = $this->createMock(IGroupManager::class);
|
||||
$this->userSession = $this->createMock(IUserSession::class);
|
||||
$l = $this->createMock(IL10N::class);
|
||||
$l->method('t')
|
||||
->will($this->returnCallback(function($text, $parameters = []) {
|
||||
return vsprintf($text, $parameters);
|
||||
}));
|
||||
$this->groupsController = new GroupsController(
|
||||
'settings',
|
||||
$this->createMock(IRequest::class),
|
||||
$this->groupManager,
|
||||
$this->userSession,
|
||||
true,
|
||||
$l
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Since GroupManager uses the static OC_Subadmin class it can't be mocked
|
||||
* to test for subadmins. Thus the test always assumes you have admin permissions...
|
||||
*/
|
||||
public function testIndexSortByName() {
|
||||
$firstGroup = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$firstGroup
|
||||
->method('getGID')
|
||||
->will($this->returnValue('firstGroup'));
|
||||
$firstGroup
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('First group'));
|
||||
$firstGroup
|
||||
->method('count')
|
||||
->will($this->returnValue(12));
|
||||
$secondGroup = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$secondGroup
|
||||
->method('getGID')
|
||||
->will($this->returnValue('secondGroup'));
|
||||
$secondGroup
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('Second group'));
|
||||
$secondGroup
|
||||
->method('count')
|
||||
->will($this->returnValue(25));
|
||||
$thirdGroup = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$thirdGroup
|
||||
->method('getGID')
|
||||
->will($this->returnValue('thirdGroup'));
|
||||
$thirdGroup
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('Third group'));
|
||||
$thirdGroup
|
||||
->method('count')
|
||||
->will($this->returnValue(14));
|
||||
$fourthGroup = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$fourthGroup
|
||||
->method('getGID')
|
||||
->will($this->returnValue('admin'));
|
||||
$fourthGroup
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('Admin'));
|
||||
$fourthGroup
|
||||
->method('count')
|
||||
->will($this->returnValue(18));
|
||||
/** @var \OC\Group\Group[] $groups */
|
||||
$groups = array();
|
||||
$groups[] = $firstGroup;
|
||||
$groups[] = $secondGroup;
|
||||
$groups[] = $thirdGroup;
|
||||
$groups[] = $fourthGroup;
|
||||
|
||||
$user = $this->getMockBuilder(User::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$this->userSession
|
||||
->expects($this->once())
|
||||
->method('getUser')
|
||||
->will($this->returnValue($user));
|
||||
$user
|
||||
->expects($this->once())
|
||||
->method('getUID')
|
||||
->will($this->returnValue('MyAdminUser'));
|
||||
$this->groupManager->method('search')
|
||||
->will($this->returnValue($groups));
|
||||
|
||||
$expectedResponse = new DataResponse(
|
||||
array(
|
||||
'data' => array(
|
||||
'adminGroups' => array(
|
||||
0 => array(
|
||||
'id' => 'admin',
|
||||
'name' => 'Admin',
|
||||
'usercount' => 0,//User count disabled 18,
|
||||
)
|
||||
),
|
||||
'groups' =>
|
||||
array(
|
||||
0 => array(
|
||||
'id' => 'firstGroup',
|
||||
'name' => 'First group',
|
||||
'usercount' => 0,//User count disabled 12,
|
||||
),
|
||||
1 => array(
|
||||
'id' => 'secondGroup',
|
||||
'name' => 'Second group',
|
||||
'usercount' => 0,//User count disabled 25,
|
||||
),
|
||||
2 => array(
|
||||
'id' => 'thirdGroup',
|
||||
'name' => 'Third group',
|
||||
'usercount' => 0,//User count disabled 14,
|
||||
),
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
$response = $this->groupsController->index('', false, MetaData::SORT_GROUPNAME);
|
||||
$this->assertEquals($expectedResponse, $response);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: Since GroupManager uses the static OC_Subadmin class it can't be mocked
|
||||
* to test for subadmins. Thus the test always assumes you have admin permissions...
|
||||
*/
|
||||
public function testIndexSortbyCount() {
|
||||
$firstGroup = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$firstGroup
|
||||
->method('getGID')
|
||||
->will($this->returnValue('firstGroup'));
|
||||
$firstGroup
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('First group'));
|
||||
$firstGroup
|
||||
->method('count')
|
||||
->will($this->returnValue(12));
|
||||
$secondGroup = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$secondGroup
|
||||
->method('getGID')
|
||||
->will($this->returnValue('secondGroup'));
|
||||
$secondGroup
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('Second group'));
|
||||
$secondGroup
|
||||
->method('count')
|
||||
->will($this->returnValue(25));
|
||||
$thirdGroup = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$thirdGroup
|
||||
->method('getGID')
|
||||
->will($this->returnValue('thirdGroup'));
|
||||
$thirdGroup
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('Third group'));
|
||||
$thirdGroup
|
||||
->method('count')
|
||||
->will($this->returnValue(14));
|
||||
$fourthGroup = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$fourthGroup
|
||||
->method('getGID')
|
||||
->will($this->returnValue('admin'));
|
||||
$fourthGroup
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('Admin'));
|
||||
$fourthGroup
|
||||
->method('count')
|
||||
->will($this->returnValue(18));
|
||||
/** @var \OC\Group\Group[] $groups */
|
||||
$groups = array();
|
||||
$groups[] = $firstGroup;
|
||||
$groups[] = $secondGroup;
|
||||
$groups[] = $thirdGroup;
|
||||
$groups[] = $fourthGroup;
|
||||
|
||||
$user = $this->getMockBuilder(User::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$this->userSession
|
||||
->expects($this->once())
|
||||
->method('getUser')
|
||||
->will($this->returnValue($user));
|
||||
$user
|
||||
->expects($this->once())
|
||||
->method('getUID')
|
||||
->will($this->returnValue('MyAdminUser'));
|
||||
$this->groupManager
|
||||
->method('search')
|
||||
->will($this->returnValue($groups));
|
||||
|
||||
$expectedResponse = new DataResponse(
|
||||
array(
|
||||
'data' => array(
|
||||
'adminGroups' => array(
|
||||
0 => array(
|
||||
'id' => 'admin',
|
||||
'name' => 'Admin',
|
||||
'usercount' => 18,
|
||||
)
|
||||
),
|
||||
'groups' =>
|
||||
array(
|
||||
0 => array(
|
||||
'id' => 'secondGroup',
|
||||
'name' => 'Second group',
|
||||
'usercount' => 25,
|
||||
),
|
||||
1 => array(
|
||||
'id' => 'thirdGroup',
|
||||
'name' => 'Third group',
|
||||
'usercount' => 14,
|
||||
),
|
||||
2 => array(
|
||||
'id' => 'firstGroup',
|
||||
'name' => 'First group',
|
||||
'usercount' => 12,
|
||||
),
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
$response = $this->groupsController->index();
|
||||
$this->assertEquals($expectedResponse, $response);
|
||||
}
|
||||
|
||||
public function testCreateWithExistingGroup() {
|
||||
$this->groupManager
|
||||
->expects($this->once())
|
||||
->method('groupExists')
|
||||
->with('ExistingGroup')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$expectedResponse = new DataResponse(
|
||||
array(
|
||||
'message' => 'Group already exists.'
|
||||
),
|
||||
Http::STATUS_CONFLICT
|
||||
);
|
||||
$response = $this->groupsController->create('ExistingGroup');
|
||||
$this->assertEquals($expectedResponse, $response);
|
||||
}
|
||||
|
||||
public function testCreateSuccessful() {
|
||||
$group = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$this->groupManager
|
||||
->expects($this->once())
|
||||
->method('groupExists')
|
||||
->with('NewGroup')
|
||||
->will($this->returnValue(false));
|
||||
$this->groupManager
|
||||
->expects($this->once())
|
||||
->method('createGroup')
|
||||
->with('NewGroup')
|
||||
->will($this->returnValue($group));
|
||||
$group
|
||||
->expects($this->once())
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('NewGroup'));
|
||||
|
||||
$expectedResponse = new DataResponse(
|
||||
array(
|
||||
'groupname' => 'NewGroup'
|
||||
),
|
||||
Http::STATUS_CREATED
|
||||
);
|
||||
$response = $this->groupsController->create('NewGroup');
|
||||
$this->assertEquals($expectedResponse, $response);
|
||||
}
|
||||
|
||||
public function testCreateUnsuccessful() {
|
||||
$this->groupManager
|
||||
->expects($this->once())
|
||||
->method('groupExists')
|
||||
->with('NewGroup')
|
||||
->will($this->returnValue(false));
|
||||
$this->groupManager
|
||||
->expects($this->once())
|
||||
->method('createGroup')
|
||||
->with('NewGroup')
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$expectedResponse = new DataResponse(
|
||||
array(
|
||||
'status' => 'error',
|
||||
'data' => array('message' => 'Unable to add group.')
|
||||
),
|
||||
Http::STATUS_FORBIDDEN
|
||||
);
|
||||
$response = $this->groupsController->create('NewGroup');
|
||||
$this->assertEquals($expectedResponse, $response);
|
||||
}
|
||||
|
||||
public function testDestroySuccessful() {
|
||||
$group = $this->getMockBuilder(Group::class)
|
||||
->disableOriginalConstructor()->getMock();
|
||||
$this->groupManager
|
||||
->expects($this->once())
|
||||
->method('get')
|
||||
->with('ExistingGroup')
|
||||
->will($this->returnValue($group));
|
||||
$group
|
||||
->expects($this->once())
|
||||
->method('delete')
|
||||
->will($this->returnValue(true));
|
||||
$group
|
||||
->method('getDisplayName')
|
||||
->will($this->returnValue('ExistingGroup'));
|
||||
|
||||
$expectedResponse = new DataResponse(
|
||||
array(
|
||||
'status' => 'success',
|
||||
'data' => array('groupname' => 'ExistingGroup')
|
||||
),
|
||||
Http::STATUS_NO_CONTENT
|
||||
);
|
||||
$response = $this->groupsController->destroy('ExistingGroup');
|
||||
$this->assertEquals($expectedResponse, $response);
|
||||
}
|
||||
|
||||
public function testDestroyUnsuccessful() {
|
||||
$this->groupManager
|
||||
->expects($this->once())
|
||||
->method('get')
|
||||
->with('ExistingGroup')
|
||||
->will($this->returnValue(null));
|
||||
|
||||
$expectedResponse = new DataResponse(
|
||||
array(
|
||||
'status' => 'error',
|
||||
'data' => array('message' => 'Unable to delete group.')
|
||||
),
|
||||
Http::STATUS_FORBIDDEN
|
||||
);
|
||||
$response = $this->groupsController->destroy('ExistingGroup');
|
||||
$this->assertEquals($expectedResponse, $response);
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue