Unit tests for UserGlobalStoragesService::getUniqueStorages()
This commit is contained in:
parent
ca7b4a42f9
commit
373e2f890f
1 changed files with 78 additions and 2 deletions
|
@ -35,6 +35,7 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
|
|||
|
||||
const USER_ID = 'test_user';
|
||||
const GROUP_ID = 'test_group';
|
||||
const GROUP_ID2 = 'test_group2';
|
||||
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
|
@ -51,8 +52,12 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
|
|||
$this->groupManager = $this->getMock('\OCP\IGroupManager');
|
||||
$this->groupManager->method('isInGroup')
|
||||
->will($this->returnCallback(function($userId, $groupId) {
|
||||
if ($userId === self::USER_ID && $groupId === self::GROUP_ID) {
|
||||
return true;
|
||||
if ($userId === self::USER_ID) {
|
||||
switch ($groupId) {
|
||||
case self::GROUP_ID:
|
||||
case self::GROUP_ID2:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}));
|
||||
|
@ -167,6 +172,77 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest {
|
|||
$this->service->removeStorage(1);
|
||||
}
|
||||
|
||||
public function getUniqueStoragesProvider() {
|
||||
return [
|
||||
// 'all' vs group
|
||||
[100, [], [], 100, [], [self::GROUP_ID], 2],
|
||||
[100, [], [self::GROUP_ID], 100, [], [], 1],
|
||||
|
||||
// 'all' vs user
|
||||
[100, [], [], 100, [self::USER_ID], [], 2],
|
||||
[100, [self::USER_ID], [], 100, [], [], 1],
|
||||
|
||||
// group vs user
|
||||
[100, [], [self::GROUP_ID], 100, [self::USER_ID], [], 2],
|
||||
[100, [self::USER_ID], [], 100, [], [self::GROUP_ID], 1],
|
||||
|
||||
// group+user vs group
|
||||
[100, [], [self::GROUP_ID2], 100, [self::USER_ID], [self::GROUP_ID], 2],
|
||||
[100, [self::USER_ID], [self::GROUP_ID], 100, [], [self::GROUP_ID2], 1],
|
||||
|
||||
// user vs 'all' (higher priority)
|
||||
[200, [], [], 100, [self::USER_ID], [], 2],
|
||||
[100, [self::USER_ID], [], 200, [], [], 1],
|
||||
|
||||
// group vs group (higher priority)
|
||||
[100, [], [self::GROUP_ID2], 200, [], [self::GROUP_ID], 2],
|
||||
[200, [], [self::GROUP_ID], 100, [], [self::GROUP_ID2], 1],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider getUniqueStoragesProvider
|
||||
*/
|
||||
public function testGetUniqueStorages(
|
||||
$priority1, $applicableUsers1, $applicableGroups1,
|
||||
$priority2, $applicableUsers2, $applicableGroups2,
|
||||
$expectedPrecedence
|
||||
) {
|
||||
$backend = $this->backendService->getBackend('identifier:\OCA\Files_External\Lib\Backend\SMB');
|
||||
$authMechanism = $this->backendService->getAuthMechanism('identifier:\Auth\Mechanism');
|
||||
|
||||
$storage1 = new StorageConfig();
|
||||
$storage1->setMountPoint('mountpoint');
|
||||
$storage1->setBackend($backend);
|
||||
$storage1->setAuthMechanism($authMechanism);
|
||||
$storage1->setBackendOptions(['password' => 'testPassword']);
|
||||
$storage1->setPriority($priority1);
|
||||
$storage1->setApplicableUsers($applicableUsers1);
|
||||
$storage1->setApplicableGroups($applicableGroups1);
|
||||
|
||||
$storage1 = $this->globalStoragesService->addStorage($storage1);
|
||||
|
||||
$storage2 = new StorageConfig();
|
||||
$storage2->setMountPoint('mountpoint');
|
||||
$storage2->setBackend($backend);
|
||||
$storage2->setAuthMechanism($authMechanism);
|
||||
$storage2->setBackendOptions(['password' => 'testPassword']);
|
||||
$storage2->setPriority($priority2);
|
||||
$storage2->setApplicableUsers($applicableUsers2);
|
||||
$storage2->setApplicableGroups($applicableGroups2);
|
||||
|
||||
$storage2 = $this->globalStoragesService->addStorage($storage2);
|
||||
|
||||
$storages = $this->service->getUniqueStorages();
|
||||
$this->assertCount(1, $storages);
|
||||
|
||||
if ($expectedPrecedence === 1) {
|
||||
$this->assertArrayHasKey($storage1->getID(), $storages);
|
||||
} elseif ($expectedPrecedence === 2) {
|
||||
$this->assertArrayHasKey($storage2->getID(), $storages);
|
||||
}
|
||||
}
|
||||
|
||||
public function testHooksAddStorage($a = null, $b = null, $c = null) {
|
||||
// we don't test this here
|
||||
$this->assertTrue(true);
|
||||
|
|
Loading…
Reference in a new issue