diff options
author | Morris Jobke <hey@morrisjobke.de> | 2017-04-18 20:04:32 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-18 20:04:32 -0500 |
commit | f1ddb939a0f263582acbadf4e2dd6277638f2ce3 (patch) | |
tree | 592cbf56707c55fe76646d7fc6b165461b4eaf66 /tests/lib | |
parent | febe01f571c10a38abaf642d4c71afb452cf0dc6 (diff) | |
parent | a3922bbcdc04d13c4e9614e0a29506c2fc8c7989 (diff) | |
download | nextcloud-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.php | 43 |
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 |