54 lines
1.3 KiB
PHP
54 lines
1.3 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Cf7stg\Tests;
|
|
|
|
use Cf7stg\DomainFormatter;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class DomainFormatterTest extends TestCase
|
|
{
|
|
public function test_decodes_punycode_to_cyrillic(): void
|
|
{
|
|
self::assertSame(
|
|
'вашаняня.рф',
|
|
DomainFormatter::humanize('xn--80aae0ca7d8bb.xn--p1ai')
|
|
);
|
|
}
|
|
|
|
public function test_latin_domain_unchanged(): void
|
|
{
|
|
self::assertSame(
|
|
'washanyanya.ru',
|
|
DomainFormatter::humanize('washanyanya.ru')
|
|
);
|
|
}
|
|
|
|
public function test_strips_scheme_and_path(): void
|
|
{
|
|
self::assertSame(
|
|
'washanyanya.ru',
|
|
DomainFormatter::humanize('https://washanyanya.ru/contact/?a=1')
|
|
);
|
|
}
|
|
|
|
public function test_strips_leading_www(): void
|
|
{
|
|
self::assertSame(
|
|
'washanyanya.ru',
|
|
DomainFormatter::humanize('www.washanyanya.ru')
|
|
);
|
|
}
|
|
|
|
public function test_invalid_input_returns_empty_string(): void
|
|
{
|
|
self::assertSame('', DomainFormatter::humanize(''));
|
|
}
|
|
|
|
public function test_broken_idn_returns_original(): void
|
|
{
|
|
// Looks like IDN but is garbage; idn_to_utf8 returns false → we fall back
|
|
self::assertSame('xn--', DomainFormatter::humanize('xn--'));
|
|
}
|
|
}
|