123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?php
- namespace Tests\Unit;
- if (!defined('INSTALLDIR')) {
- define('INSTALLDIR', dirname(dirname(__DIR__)));
- }
- if (!defined('PUBLICDIR')) {
- define('PUBLICDIR', INSTALLDIR . DIRECTORY_SEPARATOR . 'public');
- }
- if (!defined('GNUSOCIAL')) {
- define('GNUSOCIAL', true);
- }
- if (!defined('STATUSNET')) {
- define('STATUSNET', true);
- }
- use Nickname;
- use NicknameBlacklistedException;
- use NicknameEmptyException;
- use NicknameException;
- use NicknameInvalidException;
- use NicknamePathCollisionException;
- use NicknameTakenException;
- use NicknameTooLongException;
- use PHPUnit\Framework\TestCase;
- require_once INSTALLDIR . '/lib/util/common.php';
- final class NicknameTest extends TestCase
- {
-
- public function testBasic($input, $expected, $expectedException = null)
- {
- $exception = null;
- $normalized = false;
- try {
- $normalized = Nickname::normalize($input);
- } catch (NicknameException $e) {
- $exception = $e;
- }
- if ($expected === false) {
- if ($expectedException) {
- if ($exception) {
- $stuff = get_class($exception) . ': ' . $exception->getMessage();
- } else {
- $stuff = var_export($exception, true);
- }
- static::assertTrue(
- $exception && $exception instanceof $expectedException,
- "invalid input '{$input}' expected to fail with {$expectedException}, " .
- "got {$stuff}"
- );
- } else {
- static::assertTrue(
- $normalized == false,
- "invalid input '{$input}' expected to fail"
- );
- }
- } else {
- $msg = "normalized input nickname '{$input}' expected to normalize to '{$expected}', got ";
- if ($exception) {
- $msg .= get_class($exception) . ': ' . $exception->getMessage();
- } else {
- $msg .= "'{$normalized}'";
- }
- static::assertSame($expected, $normalized, $msg);
- }
- }
-
- public function testAtReply($input, $expected, $expectedException = null)
- {
- if ($expected == false) {
-
- } else {
- $text = "@{$input} awesome! :)";
- $matches = common_find_mentions_raw($text);
- static::assertCount(1, $matches);
- static::assertSame($expected, Nickname::normalize($matches[0][0]));
- }
- }
- public static function provider()
- {
- return [
- ['evan', 'evan'],
-
- ['Evan', 'evan'],
- ['EVAN', 'evan'],
- ['ev_an', 'evan'],
- ['E__V_an', 'evan'],
- ['evan1', 'evan1'],
- ['evan_1', 'evan1'],
- ['0x20', '0x20'],
- ['1234', '1234'],
- ['12__34', '1234'],
-
- ['^#@&^#@', false, 'NicknameInvalidException'],
- ['ev.an', false, 'NicknameInvalidException'],
- ['ev/an', false, 'NicknameInvalidException'],
- ['ev an', false, 'NicknameInvalidException'],
- ['ev-an', false, 'NicknameInvalidException'],
-
-
-
-
- ['évan', false, 'NicknameInvalidException'],
- ['Évan', false, 'NicknameInvalidException'],
-
- ['', false, 'NicknameEmptyException'],
- ['___', false, 'NicknameEmptyException'],
- ['eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'],
- ['eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee_', false, 'NicknameTooLongException'],
- ['eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee', false, 'NicknameTooLongException'],
- ];
- }
- }
|