85 lines
2.3 KiB
PHP
85 lines
2.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Doctrine\Tests\RST;
|
|
|
|
use Doctrine\RST\Configuration;
|
|
use Doctrine\RST\Kernel;
|
|
use Doctrine\RST\Parser;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
use function trim;
|
|
|
|
class LinkParserTest extends TestCase
|
|
{
|
|
/** @var Configuration */
|
|
private $configuration;
|
|
|
|
/** @var Parser */
|
|
private $parser;
|
|
|
|
public function testStandaloneLinkWithUnderscoreAtTheEnd(): void
|
|
{
|
|
$result = $this->parser->parse('http://www.google.com/test_')->render();
|
|
|
|
self::assertSame('<p><a href="http://www.google.com/test_">http://www.google.com/test_</a></p>', trim($result));
|
|
}
|
|
|
|
public function testLinkWithUnderscore(): void
|
|
{
|
|
$rst = <<<'EOF'
|
|
has_underscore_
|
|
|
|
.. _has_underscore: https://www.google.com
|
|
EOF;
|
|
|
|
$result = $this->parser->parse($rst)->render();
|
|
|
|
self::assertSame('<p><a href="https://www.google.com">has_underscore</a></p>', trim($result));
|
|
}
|
|
|
|
public function testInvalidLinks(): void
|
|
{
|
|
$this->configuration->setIgnoreInvalidReferences(true);
|
|
$this->configuration->abortOnError(false);
|
|
|
|
$rst = <<<'EOF'
|
|
does_not_exist_
|
|
|
|
`Does Not Exist1`_
|
|
|
|
:ref:`Does Not Exist2 <does-not-exist2>`
|
|
EOF;
|
|
|
|
$result = $this->parser->parse($rst)->render();
|
|
|
|
self::assertStringContainsString('<p>does_not_exist</p>', $result);
|
|
self::assertStringContainsString('<p>Does Not Exist1</p>', $result);
|
|
self::assertStringContainsString('<p>Does Not Exist2</p>', $result);
|
|
}
|
|
|
|
public function testLinkWithParenthesis(): void
|
|
{
|
|
$rst = <<<'EOF'
|
|
Example_, `Example Web Site`_, Example (`Web Site`_), and Example (Link_)
|
|
|
|
.. _Example: http://www.example.com/
|
|
.. _`Example Web Site`: http://www.example.com/
|
|
.. _`Web Site`: http://www.example.com/
|
|
.. _Link: http://www.example.com/
|
|
EOF;
|
|
|
|
$result = $this->parser->parse($rst)->render();
|
|
|
|
self::assertSame('<p><a href="http://www.example.com/">Example</a>, <a href="http://www.example.com/">Example Web Site</a>, Example (<a href="http://www.example.com/">Web Site</a>), and Example (<a href="http://www.example.com/">Link</a>)</p>', trim($result));
|
|
}
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->configuration = new Configuration();
|
|
|
|
$this->parser = new Parser(new Kernel($this->configuration));
|
|
}
|
|
}
|