MarkdownParser/test/Test.php

108 lines
2.3 KiB
PHP
Raw Normal View History

2013-07-21 22:14:30 +02:00
<?php
class Test extends PHPUnit_Framework_TestCase
{
2014-04-17 09:46:07 +02:00
public function __construct($name = null, array $data = array(), $dataName = '')
{
$this->dataDir = dirname(__FILE__).'/data/';
2014-04-17 09:46:07 +02:00
parent::__construct($name, $data, $dataName);
}
private $dataDir;
/**
2014-04-17 12:34:06 +02:00
* @dataProvider data
*/
function test_($filename)
{
$markdown = file_get_contents($this->dataDir . $filename . '.md');
2014-04-17 09:46:07 +02:00
2014-04-17 12:34:06 +02:00
$expectedMarkup = file_get_contents($this->dataDir . $filename . '.html');
2014-02-03 11:23:54 +01:00
2014-04-17 12:34:06 +02:00
$expectedMarkup = str_replace("\r\n", "\n", $expectedMarkup);
$expectedMarkup = str_replace("\r", "\n", $expectedMarkup);
2013-07-21 23:19:11 +02:00
2014-04-17 12:34:06 +02:00
$actualMarkup = Parsedown::instance()->text($markdown);
2014-04-17 09:46:07 +02:00
2014-04-17 12:34:06 +02:00
$this->assertEquals($expectedMarkup, $actualMarkup);
}
2014-04-17 12:34:06 +02:00
function data()
{
$data = array();
2014-04-17 12:34:06 +02:00
$Folder = new DirectoryIterator($this->dataDir);
2014-04-17 12:34:06 +02:00
foreach ($Folder as $File)
{
2014-04-17 09:46:07 +02:00
/** @var $File DirectoryIterator */
2014-04-17 09:46:07 +02:00
if ( ! $File->isFile())
{
continue;
}
2014-04-17 09:46:07 +02:00
$filename = $File->getFilename();
2014-04-17 09:46:07 +02:00
$extension = pathinfo($filename, PATHINFO_EXTENSION);
2014-04-17 09:46:07 +02:00
if ($extension !== 'md')
{
continue;
}
2014-02-03 11:23:54 +01:00
2014-04-17 09:46:07 +02:00
$basename = $File->getBasename('.md');
if (file_exists($this->dataDir . $basename . '.html'))
{
$data []= array($basename);
}
2014-04-17 12:34:06 +02:00
}
2014-04-17 09:46:07 +02:00
2014-04-17 12:34:06 +02:00
return $data;
}
public function test_no_markup()
{
$markdownWithHtml = <<<MARKDOWN_WITH_MARKUP
<div>_content_</div>
sparse:
<div>
<div class="inner">
_content_
</div>
</div>
paragraph
<style type="text/css">
p {
color: red;
}
</style>
MARKDOWN_WITH_MARKUP;
$expectedHtml = <<<EXPECTED_HTML
<p>&lt;div><em>content</em>&lt;/div></p>
<p>sparse:</p>
<p>&lt;div>
&lt;div class="inner">
<em>content</em>
&lt;/div>
&lt;/div></p>
<p>paragraph</p>
<p>&lt;style type="text/css"></p>
<pre><code>p {
color: red;
}</code></pre>
<p>&lt;/style></p>
EXPECTED_HTML;
$parsedownWithNoMarkup = new Parsedown();
2014-09-22 01:36:42 +02:00
$parsedownWithNoMarkup->setMarkupEscaped(true);
$this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml));
}
2014-04-17 09:46:07 +02:00
}