mirror of
https://github.com/pterodactyl/panel.git
synced 2024-11-23 01:22:30 +01:00
75 lines
1.7 KiB
PHP
75 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Pterodactyl\Tests\Unit\Rules;
|
|
|
|
use Pterodactyl\Rules\Username;
|
|
use Pterodactyl\Tests\TestCase;
|
|
|
|
class UsernameTest extends TestCase
|
|
{
|
|
/**
|
|
* Test that this rule can be cast to a string correctly.
|
|
*/
|
|
public function testRuleIsStringable()
|
|
{
|
|
$this->assertSame('p_username', (string) new Username());
|
|
}
|
|
|
|
/**
|
|
* Test valid usernames.
|
|
*
|
|
* @dataProvider validUsernameDataProvider
|
|
*/
|
|
public function testValidUsernames(string $username)
|
|
{
|
|
$this->assertTrue((new Username())->passes('test', $username), 'Assert username is valid.');
|
|
}
|
|
|
|
/**
|
|
* Test invalid usernames return false.
|
|
*
|
|
* @dataProvider invalidUsernameDataProvider
|
|
*/
|
|
public function testInvalidUsernames(string $username)
|
|
{
|
|
$this->assertFalse((new Username())->passes('test', $username), 'Assert username is not valid.');
|
|
}
|
|
|
|
/**
|
|
* Provide valid usernames.
|
|
*/
|
|
public function validUsernameDataProvider(): array
|
|
{
|
|
return [
|
|
['username'],
|
|
['user_name'],
|
|
['user.name'],
|
|
['user-name'],
|
|
['123username123'],
|
|
['123-user.name'],
|
|
['123456'],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Provide invalid usernames.
|
|
*/
|
|
public function invalidUsernameDataProvider(): array
|
|
{
|
|
return [
|
|
['_username'],
|
|
['username_'],
|
|
['_username_'],
|
|
['-username'],
|
|
['.username'],
|
|
['username-'],
|
|
['username.'],
|
|
['user*name'],
|
|
['user^name'],
|
|
['user#name'],
|
|
['user+name'],
|
|
['1234_'],
|
|
];
|
|
}
|
|
}
|