diff options
author | Vincent Petry <pvince81@owncloud.com> | 2016-10-04 13:28:41 +0300 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2016-10-18 11:04:33 +0300 |
commit | 6fe9f1df7ac2f2dbb84ac78506d2eb5f82dde4e0 (patch) | |
tree | a5518f39aa04353eef8592a6754a3bc02826b180 /tests | |
parent | 0df4cdc66005b580f565ce18ba8e4f12e6166995 (diff) |
Add using casing check/fix for initMountPoints
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/AvatarManagerTest.php | 33 | ||||
-rw-r--r-- | tests/lib/Files/FilesystemTest.php | 35 | ||||
-rw-r--r-- | tests/lib/Files/Node/RootTest.php | 56 | ||||
-rw-r--r-- | tests/lib/TestCase.php | 3 |
4 files changed, 125 insertions, 2 deletions
diff --git a/tests/lib/AvatarManagerTest.php b/tests/lib/AvatarManagerTest.php index 2dd6ff34923..f49c178033d 100644 --- a/tests/lib/AvatarManagerTest.php +++ b/tests/lib/AvatarManagerTest.php @@ -30,7 +30,6 @@ use Test\Traits\MountProviderTrait; * @group DB */ class AvatarManagerTest extends \Test\TestCase { - use UserTrait; use MountProviderTrait; /** @var AvatarManager */ @@ -39,10 +38,29 @@ class AvatarManagerTest extends \Test\TestCase { /** @var \OC\Files\Storage\Temporary */ private $storage; + /** @var \OCP\IUser */ + private $user; + public function setUp() { parent::setUp(); - $this->createUser('valid-user', 'valid-user'); + \OC_User::clearBackends(); + // needed for loginName2UserName mapping + $userBackend = $this->getMock('\OC\User\Database'); + \OC::$server->getUserManager()->registerBackend($userBackend); + + $userBackend->expects($this->any()) + ->method('userExists') + ->will($this->returnValueMap([ + ['valid-user', true], + ['vaLid-USER', true], + ])); + $userBackend->expects($this->any()) + ->method('loginName2UserName') + ->will($this->returnValueMap([ + ['valid-user', 'valid-user'], + ['vaLid-USER', 'valid-user'], + ])); $this->storage = new \OC\Files\Storage\Temporary(); $this->registerMount('valid-user', $this->storage, '/valid-user/'); @@ -50,6 +68,10 @@ class AvatarManagerTest extends \Test\TestCase { $this->avatarManager = \OC::$server->getAvatarManager(); } + public function tearDown() { + \OC_User::clearBackends(); + } + /** * @expectedException \Exception * @expectedExceptionMessage user does not exist @@ -65,4 +87,11 @@ class AvatarManagerTest extends \Test\TestCase { $this->assertFalse($this->storage->file_exists('files')); } + public function testGetAvatarValidUserDifferentCasing() { + $avatar = $this->avatarManager->getAvatar('vaLid-USER'); + + $this->assertInstanceOf('\OCP\IAvatar', $avatar); + $this->assertFalse($this->storage->file_exists('files')); + } + } diff --git a/tests/lib/Files/FilesystemTest.php b/tests/lib/Files/FilesystemTest.php index 76e3f471633..1deeb7502df 100644 --- a/tests/lib/Files/FilesystemTest.php +++ b/tests/lib/Files/FilesystemTest.php @@ -79,6 +79,7 @@ class FilesystemTest extends \Test\TestCase { protected function setUp() { parent::setUp(); + \OC_User::clearBackends(); $userBackend = new \Test\Util\User\Dummy(); $userBackend->createUser(self::TEST_FILESYSTEM_USER1, self::TEST_FILESYSTEM_USER1); $userBackend->createUser(self::TEST_FILESYSTEM_USER2, self::TEST_FILESYSTEM_USER2); @@ -93,6 +94,7 @@ class FilesystemTest extends \Test\TestCase { $this->logout(); $this->invokePrivate('\OC\Files\Filesystem', 'normalizedPathCache', [null]); + \OC_User::clearBackends(); parent::tearDown(); } @@ -390,6 +392,39 @@ class FilesystemTest extends \Test\TestCase { $this->assertEquals(2, $thrown); } + public function testUserNameCasing() { + $this->logout(); + $userId = $this->getUniqueID('user_'); + + \OC_User::clearBackends(); + // needed for loginName2UserName mapping + $userBackend = $this->getMock('\OC\User\Database'); + \OC::$server->getUserManager()->registerBackend($userBackend); + + $userBackend->expects($this->once()) + ->method('userExists') + ->with(strtoupper($userId)) + ->will($this->returnValue(true)); + $userBackend->expects($this->once()) + ->method('loginName2UserName') + ->with(strtoupper($userId)) + ->will($this->returnValue($userId)); + + $view = new \OC\Files\View(); + $this->assertFalse($view->file_exists('/' . $userId)); + + \OC\Files\Filesystem::initMountPoints(strtoupper($userId)); + + list($storage1, $path1) = $view->resolvePath('/' . $userId); + list($storage2, $path2) = $view->resolvePath('/' . strtoupper($userId)); + + $this->assertTrue($storage1->instanceOfStorage('\OCP\Files\IHomeStorage')); + $this->assertEquals('', $path1); + + // not mounted, still on the local root storage + $this->assertEquals(strtoupper($userId), $path2); + } + /** * Tests that the home storage is used for the user's mount point */ diff --git a/tests/lib/Files/Node/RootTest.php b/tests/lib/Files/Node/RootTest.php index 1b4824cba76..55939c831ad 100644 --- a/tests/lib/Files/Node/RootTest.php +++ b/tests/lib/Files/Node/RootTest.php @@ -11,6 +11,7 @@ namespace Test\Files\Node; use OC\Files\FileInfo; use OCP\Files\NotPermittedException; use OC\Files\Mount\Manager; +use OC\User\NoUserException; /** * @group DB @@ -101,4 +102,59 @@ class RootTest extends \Test\TestCase { $root->get('/bar/foo'); } + + public function testGetUserFolder() { + $this->logout(); + $manager = new Manager(); + /** + * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view + */ + $view = new \OC\Files\View(); + + $user1 = $this->getUniqueID('user1_'); + $user2 = $this->getUniqueID('user2_'); + + \OC_User::clearBackends(); + // needed for loginName2UserName mapping + $userBackend = $this->getMock('\OC\User\Database'); + \OC::$server->getUserManager()->registerBackend($userBackend); + + $userBackend->expects($this->any()) + ->method('userExists') + ->will($this->returnValueMap([ + [$user1, true], + [$user2, true], + [strtoupper($user1), true], + [strtoupper($user2), true], + ])); + $userBackend->expects($this->any()) + ->method('loginName2UserName') + ->will($this->returnValueMap([ + [strtoupper($user1), $user1], + [$user1, $user1], + [strtoupper($user2), $user2], + [$user2, $user2], + ])); + + $this->loginAsUser($user1); + $root = new \OC\Files\Node\Root($manager, $view, null); + + $folder = $root->getUserFolder($user1); + $this->assertEquals('/' . $user1 . '/files', $folder->getPath()); + + $folder = $root->getUserFolder($user2); + $this->assertEquals('/' . $user2 . '/files', $folder->getPath()); + + // case difference must not matter here + $folder = $root->getUserFolder(strtoupper($user2)); + $this->assertEquals('/' . $user2 . '/files', $folder->getPath()); + + $thrown = false; + try { + $folder = $root->getUserFolder($this->getUniqueID('unexist')); + } catch (NoUserException $e) { + $thrown = true; + } + $this->assertTrue($thrown); + } } diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php index a1f65f8ac82..da7b584ea66 100644 --- a/tests/lib/TestCase.php +++ b/tests/lib/TestCase.php @@ -229,6 +229,9 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase { self::tearDownAfterClassCleanStrayHooks(); self::tearDownAfterClassCleanStrayLocks(); + \OC_User::clearBackends(); + \OC_User::useBackend('dummy'); + parent::tearDownAfterClass(); } |