summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2017-04-18 20:04:32 -0500
committerGitHub <noreply@github.com>2017-04-18 20:04:32 -0500
commitf1ddb939a0f263582acbadf4e2dd6277638f2ce3 (patch)
tree592cbf56707c55fe76646d7fc6b165461b4eaf66 /tests/lib
parentfebe01f571c10a38abaf642d4c71afb452cf0dc6 (diff)
parenta3922bbcdc04d13c4e9614e0a29506c2fc8c7989 (diff)
downloadnextcloud-server-f1ddb939a0f263582acbadf4e2dd6277638f2ce3.tar.gz
nextcloud-server-f1ddb939a0f263582acbadf4e2dd6277638f2ce3.zip
Merge pull request #4371 from nextcloud/dont-allow-dot-usernames
Better validation of allowed user names
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/User/ManagerTest.php43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/lib/User/ManagerTest.php b/tests/lib/User/ManagerTest.php
index 123271bcc8f..671b2ac57c1 100644
--- a/tests/lib/User/ManagerTest.php
+++ b/tests/lib/User/ManagerTest.php
@@ -256,6 +256,49 @@ class ManagerTest extends TestCase {
$this->assertEquals('foo3', array_shift($result)->getUID());
}
+ public function dataCreateUserInvalid() {
+ return [
+ ['te?st', 'foo', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ["te\tst", '', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ["te\nst", '', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ["te\rst", '', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ["te\0st", '', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ["te\x0Bst", '', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ["te\xe2st", '', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ["te\x80st", '', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ["te\x8bst", '', 'Only the following characters are allowed in a username:'
+ . ' "a-z", "A-Z", "0-9", and "_.@-\'"'],
+ ['', 'foo', 'A valid username must be provided'],
+ [' ', 'foo', 'A valid username must be provided'],
+ [' test', 'foo', 'Username contains whitespace at the beginning or at the end'],
+ ['test ', 'foo', 'Username contains whitespace at the beginning or at the end'],
+ ['.', 'foo', 'Username must not consist of dots only'],
+ ['..', 'foo', 'Username must not consist of dots only'],
+ ['.test', '', 'A valid password must be provided'],
+ ['test', '', 'A valid password must be provided'],
+ ];
+ }
+
+ /**
+ * @dataProvider dataCreateUserInvalid
+ */
+ public function testCreateUserInvalid($uid, $password, $exception) {
+
+ $this->setExpectedException(\Exception::class, $exception);
+
+ $manager = new \OC\User\Manager($this->config);
+ $manager->createUser($uid, $password);
+
+ }
+
public function testCreateUserSingleBackendNotExists() {
/**
* @var \Test\Util\User\Dummy | \PHPUnit_Framework_MockObject_MockObject $backend