gl-website-deployer/vendor/doctrine/rst-parser/tests/UrlGeneratorTest.php
2024-11-19 08:02:04 +01:00

92 lines
2.9 KiB
PHP

<?php
declare(strict_types=1);
namespace Doctrine\Tests\RST;
use Doctrine\RST\Configuration;
use Doctrine\RST\UrlGenerator;
use PHPUnit\Framework\TestCase;
class UrlGeneratorTest extends TestCase
{
public function testGenerateUrlRelative(): void
{
$configuration = $this->createMock(Configuration::class);
$urlGenerator = new UrlGenerator($configuration);
self::assertSame('../index', $urlGenerator->generateUrl('/index', 'subdir/index', ''));
self::assertSame('index', $urlGenerator->generateUrl('/subdir/index', 'subdir/index', ''));
self::assertSame('subdir/index', $urlGenerator->generateUrl('/subdir/index', 'index', ''));
}
public function testGenerateUrlAbsoluteBaseUrl(): void
{
$configuration = $this->createMock(Configuration::class);
$configuration->expects(self::once())
->method('isBaseUrlEnabled')
->with('path')
->willReturn(true);
$configuration->expects(self::once())
->method('getBaseUrl')
->willReturn('https://www.domain.com/directory/');
$urlGenerator = new UrlGenerator($configuration);
self::assertSame(
'https://www.domain.com/directory/path',
$urlGenerator->generateUrl('/path', 'path', '')
);
}
public function testAbsoluteUrl(): void
{
$configuration = $this->createMock(Configuration::class);
$urlGenerator = new UrlGenerator($configuration);
self::assertSame('/test', $urlGenerator->absoluteUrl('/', '/test'));
self::assertSame('/test', $urlGenerator->absoluteUrl('/subdir', '/test'));
self::assertSame('/test', $urlGenerator->absoluteUrl('/', 'test'));
self::assertSame('/subdir/test', $urlGenerator->absoluteUrl('/subdir', 'test'));
}
public function testRelativeUrl(): void
{
$configuration = $this->createMock(Configuration::class);
$urlGenerator = new UrlGenerator($configuration);
self::assertNull($urlGenerator->relativeUrl(null, ''));
self::assertSame('://test', $urlGenerator->relativeUrl('://test', ''));
self::assertSame('test', $urlGenerator->relativeUrl('test', '/'));
self::assertSame('../../test', $urlGenerator->relativeUrl('/test', '/subdir1/subdir2'));
self::assertSame('../../subdir1/subdir2/test', $urlGenerator->relativeUrl('/subdir1/subdir2/test', '/subdir1/subdir2'));
}
public function testCanonicalUrl(): void
{
$configuration = $this->createMock(Configuration::class);
$urlGenerator = new UrlGenerator($configuration);
self::assertSame('dir/file', $urlGenerator->canonicalUrl('dir', 'file'));
self::assertSame('file', $urlGenerator->canonicalUrl('dir', '../file'));
self::assertSame('dir/file', $urlGenerator->canonicalUrl('dir/subdir', '../file'));
self::assertSame('file', $urlGenerator->canonicalUrl('dir/subdir', '../../file'));
}
}