|
|
|
|
@ -41,16 +41,22 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { |
|
|
|
|
const TEST_USER1 = 'user1'; |
|
|
|
|
const TEST_USER2 = 'user2'; |
|
|
|
|
const TEST_GROUP1 = 'group1'; |
|
|
|
|
const TEST_GROUP1B = 'group1b'; |
|
|
|
|
const TEST_GROUP2 = 'group2'; |
|
|
|
|
const TEST_GROUP2B = 'group2b'; |
|
|
|
|
|
|
|
|
|
public function setUp() { |
|
|
|
|
\OC_User::createUser(self::TEST_USER1, self::TEST_USER1); |
|
|
|
|
\OC_User::createUser(self::TEST_USER2, self::TEST_USER2); |
|
|
|
|
|
|
|
|
|
\OC_Group::createGroup(self::TEST_GROUP1); |
|
|
|
|
\OC_Group::createGroup(self::TEST_GROUP1B); |
|
|
|
|
\OC_Group::addToGroup(self::TEST_USER1, self::TEST_GROUP1); |
|
|
|
|
\OC_Group::addToGroup(self::TEST_USER1, self::TEST_GROUP1B); |
|
|
|
|
\OC_Group::createGroup(self::TEST_GROUP2); |
|
|
|
|
\OC_Group::createGroup(self::TEST_GROUP2B); |
|
|
|
|
\OC_Group::addToGroup(self::TEST_USER2, self::TEST_GROUP2); |
|
|
|
|
\OC_Group::addToGroup(self::TEST_USER2, self::TEST_GROUP2B); |
|
|
|
|
|
|
|
|
|
\OC_User::setUserId(self::TEST_USER1); |
|
|
|
|
$this->userHome = \OC_User::getHome(self::TEST_USER1); |
|
|
|
|
@ -81,7 +87,9 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { |
|
|
|
|
\OC_User::deleteUser(self::TEST_USER2); |
|
|
|
|
\OC_User::deleteUser(self::TEST_USER1); |
|
|
|
|
\OC_Group::deleteGroup(self::TEST_GROUP1); |
|
|
|
|
\OC_Group::deleteGroup(self::TEST_GROUP1B); |
|
|
|
|
\OC_Group::deleteGroup(self::TEST_GROUP2); |
|
|
|
|
\OC_Group::deleteGroup(self::TEST_GROUP2B); |
|
|
|
|
|
|
|
|
|
@unlink($this->dataDir . '/mount.json'); |
|
|
|
|
|
|
|
|
|
@ -635,4 +643,113 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase { |
|
|
|
|
$this->assertEquals('ext', $config[1]['mountpoint']); |
|
|
|
|
$this->assertEquals($options2, $config[1]['options']); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function priorityDataProvider() { |
|
|
|
|
return array( |
|
|
|
|
|
|
|
|
|
// test 1 - group vs group |
|
|
|
|
array( |
|
|
|
|
array( |
|
|
|
|
array( |
|
|
|
|
'isPersonal' => false, |
|
|
|
|
'mountType' => OC_Mount_Config::MOUNT_TYPE_GROUP, |
|
|
|
|
'applicable' => self::TEST_GROUP1, |
|
|
|
|
'priority' => 50 |
|
|
|
|
), |
|
|
|
|
array( |
|
|
|
|
'isPersonal' => false, |
|
|
|
|
'mountType' => OC_Mount_Config::MOUNT_TYPE_GROUP, |
|
|
|
|
'applicable' => self::TEST_GROUP1B, |
|
|
|
|
'priority' => 60 |
|
|
|
|
) |
|
|
|
|
), |
|
|
|
|
1 |
|
|
|
|
), |
|
|
|
|
// test 2 - user vs personal |
|
|
|
|
array( |
|
|
|
|
array( |
|
|
|
|
array( |
|
|
|
|
'isPersonal' => false, |
|
|
|
|
'mountType' => OC_Mount_Config::MOUNT_TYPE_USER, |
|
|
|
|
'applicable' => self::TEST_USER1, |
|
|
|
|
'priority' => 2000 |
|
|
|
|
), |
|
|
|
|
array( |
|
|
|
|
'isPersonal' => true, |
|
|
|
|
'mountType' => OC_Mount_Config::MOUNT_TYPE_USER, |
|
|
|
|
'applicable' => self::TEST_USER1, |
|
|
|
|
'priority' => null |
|
|
|
|
) |
|
|
|
|
), |
|
|
|
|
1 |
|
|
|
|
), |
|
|
|
|
// test 3 - all vs group vs user |
|
|
|
|
array( |
|
|
|
|
array( |
|
|
|
|
array( |
|
|
|
|
'isPersonal' => false, |
|
|
|
|
'mountType' => OC_Mount_Config::MOUNT_TYPE_USER, |
|
|
|
|
'applicable' => 'all', |
|
|
|
|
'priority' => 70 |
|
|
|
|
), |
|
|
|
|
array( |
|
|
|
|
'isPersonal' => false, |
|
|
|
|
'mountType' => OC_Mount_Config::MOUNT_TYPE_GROUP, |
|
|
|
|
'applicable' => self::TEST_GROUP1, |
|
|
|
|
'priority' => 60 |
|
|
|
|
), |
|
|
|
|
array( |
|
|
|
|
'isPersonal' => false, |
|
|
|
|
'mountType' => OC_Mount_Config::MOUNT_TYPE_USER, |
|
|
|
|
'applicable' => self::TEST_USER1, |
|
|
|
|
'priority' => 50 |
|
|
|
|
) |
|
|
|
|
), |
|
|
|
|
2 |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Ensure priorities are being respected |
|
|
|
|
* Test user is self::TEST_USER1 |
|
|
|
|
* |
|
|
|
|
* @dataProvider priorityDataProvider |
|
|
|
|
* @param array[] $mounts array of associative array of mount parameters: |
|
|
|
|
* bool $isPersonal |
|
|
|
|
* string $mountType |
|
|
|
|
* string $applicable |
|
|
|
|
* int|null $priority null for personal |
|
|
|
|
* @param int $expected index of expected visible mount |
|
|
|
|
*/ |
|
|
|
|
public function testPriority($mounts, $expected) { |
|
|
|
|
$mountConfig = array( |
|
|
|
|
'host' => 'somehost', |
|
|
|
|
'user' => 'someuser', |
|
|
|
|
'password' => 'somepassword', |
|
|
|
|
'root' => 'someroot' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Add mount points |
|
|
|
|
foreach($mounts as $i => $mount) { |
|
|
|
|
$this->assertTrue( |
|
|
|
|
OC_Mount_Config::addMountPoint( |
|
|
|
|
'/ext', |
|
|
|
|
'\OC\Files\Storage\SMB', |
|
|
|
|
$mountConfig + array('id' => $i), |
|
|
|
|
$mount['mountType'], |
|
|
|
|
$mount['applicable'], |
|
|
|
|
$mount['isPersonal'], |
|
|
|
|
$mount['priority'] |
|
|
|
|
) |
|
|
|
|
); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Get mount points for user |
|
|
|
|
$mountPoints = OC_Mount_Config::getAbsoluteMountPoints(self::TEST_USER1); |
|
|
|
|
|
|
|
|
|
$this->assertEquals(1, count($mountPoints)); |
|
|
|
|
$this->assertEquals($expected, $mountPoints['/'.self::TEST_USER1.'/files/ext']['options']['id']); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|