Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2016-10-04 13:28:41 +0300
committerVincent Petry <pvince81@owncloud.com>2016-10-18 11:04:33 +0300
commit6fe9f1df7ac2f2dbb84ac78506d2eb5f82dde4e0 (patch)
treea5518f39aa04353eef8592a6754a3bc02826b180 /tests
parent0df4cdc66005b580f565ce18ba8e4f12e6166995 (diff)
Add using casing check/fix for initMountPoints
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/AvatarManagerTest.php33
-rw-r--r--tests/lib/Files/FilesystemTest.php35
-rw-r--r--tests/lib/Files/Node/RootTest.php56
-rw-r--r--tests/lib/TestCase.php3
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();
}