2016-07-04 20:33:44 +02:00
|
|
|
<?php namespace Todaymade\Daux\ContentTypes\Markdown;
|
|
|
|
|
|
|
|
use org\bovigo\vfs\vfsStream;
|
|
|
|
use Todaymade\Daux\Config;
|
|
|
|
use Todaymade\Daux\Daux;
|
|
|
|
use Todaymade\Daux\DauxHelper;
|
|
|
|
use Todaymade\Daux\Tree\Builder;
|
|
|
|
use Todaymade\Daux\Tree\Root;
|
|
|
|
|
|
|
|
class LinkRendererTest extends \PHPUnit_Framework_TestCase
|
|
|
|
{
|
|
|
|
protected function getTree(Config $config)
|
|
|
|
{
|
|
|
|
$structure = [
|
|
|
|
'Content' => [
|
|
|
|
'Page.md' => 'some text content',
|
|
|
|
],
|
|
|
|
'Widgets' => [
|
|
|
|
'Page.md' => 'another page',
|
|
|
|
'Button.md' => 'another page',
|
|
|
|
],
|
|
|
|
];
|
|
|
|
$root = vfsStream::setup('root', null, $structure);
|
|
|
|
|
2016-07-27 23:27:51 +02:00
|
|
|
$config->setDocumentationDirectory($root->url());
|
2016-07-04 20:33:44 +02:00
|
|
|
$config['valid_content_extensions'] = ['md'];
|
|
|
|
$config['mode'] = Daux::STATIC_MODE;
|
|
|
|
$config['index_key'] = 'index.html';
|
|
|
|
|
2016-07-27 23:27:51 +02:00
|
|
|
$tree = new Root($config);
|
2016-07-04 20:33:44 +02:00
|
|
|
Builder::build($tree, []);
|
|
|
|
|
|
|
|
return $tree;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function providerRenderLink()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
// /Widgets/Page
|
2016-07-27 21:32:51 +02:00
|
|
|
['<a href="http://google.ch">Link</a>', '[Link](http://google.ch)', 'Widgets/Page.html'],
|
|
|
|
['<a href="#features">Link</a>', '[Link](#features)', 'Widgets/Page.html'],
|
|
|
|
['<a href="Button.html">Link</a>', '[Link](Button.md)', 'Widgets/Page.html'],
|
|
|
|
['<a href="Button.html">Link</a>', '[Link](./Button.md)', 'Widgets/Page.html'],
|
|
|
|
['<a href="Button.html">Link</a>', '[Link](Button)', 'Widgets/Page.html'],
|
|
|
|
['<a href="Button.html">Link</a>', '[Link](./Button)', 'Widgets/Page.html'],
|
|
|
|
['<a href="Button.html">Link</a>', '[Link](!Widgets/Button)', 'Widgets/Page.html'],
|
2016-07-04 20:33:44 +02:00
|
|
|
|
|
|
|
// /Content/Page
|
2016-07-27 21:32:51 +02:00
|
|
|
['<a href="../Widgets/Button.html">Link</a>', '[Link](../Widgets/Button.md)', 'Content/Page.html'],
|
|
|
|
['<a href="../Widgets/Button.html">Link</a>', '[Link](!Widgets/Button)', 'Content/Page.html'],
|
2016-07-04 20:33:44 +02:00
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @dataProvider providerRenderLink
|
|
|
|
*/
|
|
|
|
public function testRenderLink($expected, $string, $current)
|
|
|
|
{
|
|
|
|
$config = new Config();
|
|
|
|
$config['base_url'] = '';
|
|
|
|
|
|
|
|
$config['tree'] = $this->getTree($config);
|
|
|
|
$config->setCurrentPage(DauxHelper::getFile($config['tree'], $current));
|
|
|
|
|
|
|
|
$converter = new CommonMarkConverter(['daux' => $config]);
|
|
|
|
|
|
|
|
$this->assertEquals("<p>$expected</p>", trim($converter->convertToHtml($string)));
|
|
|
|
}
|
|
|
|
}
|