mirror of
https://github.com/erusev/parsedown.git
synced 2023-08-10 21:13:06 +03:00
improve extensibility of test case
This commit is contained in:
parent
bb7a3f41e3
commit
c62365adc4
@ -2,7 +2,7 @@
|
|||||||
<phpunit bootstrap="test/bootstrap.php" colors="true">
|
<phpunit bootstrap="test/bootstrap.php" colors="true">
|
||||||
<testsuites>
|
<testsuites>
|
||||||
<testsuite>
|
<testsuite>
|
||||||
<file>test/Test.php</file>
|
<file>test/ParsedownTest.php</file>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
</phpunit>
|
</phpunit>
|
133
test/ParsedownTest.php
Normal file
133
test/ParsedownTest.php
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class ParsedownTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
final function __construct($name = null, array $data = array(), $dataName = '')
|
||||||
|
{
|
||||||
|
$this->dirs = $this->initDirs();
|
||||||
|
$this->Parsedown = $this->initParsedown();
|
||||||
|
|
||||||
|
parent::__construct($name, $data, $dataName);
|
||||||
|
}
|
||||||
|
|
||||||
|
private $dirs, $Parsedown;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function initDirs()
|
||||||
|
{
|
||||||
|
$dirs []= dirname(__FILE__).'/data/';
|
||||||
|
|
||||||
|
return $dirs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Parsedown
|
||||||
|
*/
|
||||||
|
protected function initParsedown()
|
||||||
|
{
|
||||||
|
$Parsedown = new Parsedown();
|
||||||
|
|
||||||
|
return $Parsedown;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider data
|
||||||
|
* @param $test
|
||||||
|
* @param $dir
|
||||||
|
*/
|
||||||
|
function test_($test, $dir)
|
||||||
|
{
|
||||||
|
$markdown = file_get_contents($dir . $test . '.md');
|
||||||
|
|
||||||
|
$expectedMarkup = file_get_contents($dir . $test . '.html');
|
||||||
|
|
||||||
|
$expectedMarkup = str_replace("\r\n", "\n", $expectedMarkup);
|
||||||
|
$expectedMarkup = str_replace("\r", "\n", $expectedMarkup);
|
||||||
|
|
||||||
|
$actualMarkup = $this->Parsedown->text($markdown);
|
||||||
|
|
||||||
|
$this->assertEquals($expectedMarkup, $actualMarkup);
|
||||||
|
}
|
||||||
|
|
||||||
|
function data()
|
||||||
|
{
|
||||||
|
$data = array();
|
||||||
|
|
||||||
|
foreach ($this->dirs as $dir)
|
||||||
|
{
|
||||||
|
$Folder = new DirectoryIterator($dir);
|
||||||
|
|
||||||
|
foreach ($Folder as $File)
|
||||||
|
{
|
||||||
|
/** @var $File DirectoryIterator */
|
||||||
|
|
||||||
|
if ( ! $File->isFile())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$filename = $File->getFilename();
|
||||||
|
|
||||||
|
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
||||||
|
|
||||||
|
if ($extension !== 'md')
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$basename = $File->getBasename('.md');
|
||||||
|
|
||||||
|
if (file_exists($dir . $basename . '.html'))
|
||||||
|
{
|
||||||
|
$data []= array($basename, $dir);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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><div><em>content</em></div></p>
|
||||||
|
<p>sparse:</p>
|
||||||
|
<p><div>
|
||||||
|
<div class="inner">
|
||||||
|
<em>content</em>
|
||||||
|
</div>
|
||||||
|
</div></p>
|
||||||
|
<p>paragraph</p>
|
||||||
|
<p><style type="text/css"></p>
|
||||||
|
<pre><code>p {
|
||||||
|
color: red;
|
||||||
|
}</code></pre>
|
||||||
|
<p></style></p>
|
||||||
|
EXPECTED_HTML;
|
||||||
|
$parsedownWithNoMarkup = new Parsedown();
|
||||||
|
$parsedownWithNoMarkup->setMarkupEscaped(true);
|
||||||
|
$this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml));
|
||||||
|
}
|
||||||
|
}
|
107
test/Test.php
107
test/Test.php
@ -1,107 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
class Test extends PHPUnit_Framework_TestCase
|
|
||||||
{
|
|
||||||
public function __construct($name = null, array $data = array(), $dataName = '')
|
|
||||||
{
|
|
||||||
$this->dataDir = dirname(__FILE__).'/data/';
|
|
||||||
|
|
||||||
parent::__construct($name, $data, $dataName);
|
|
||||||
}
|
|
||||||
|
|
||||||
private $dataDir;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @dataProvider data
|
|
||||||
*/
|
|
||||||
function test_($filename)
|
|
||||||
{
|
|
||||||
$markdown = file_get_contents($this->dataDir . $filename . '.md');
|
|
||||||
|
|
||||||
$expectedMarkup = file_get_contents($this->dataDir . $filename . '.html');
|
|
||||||
|
|
||||||
$expectedMarkup = str_replace("\r\n", "\n", $expectedMarkup);
|
|
||||||
$expectedMarkup = str_replace("\r", "\n", $expectedMarkup);
|
|
||||||
|
|
||||||
$actualMarkup = Parsedown::instance()->text($markdown);
|
|
||||||
|
|
||||||
$this->assertEquals($expectedMarkup, $actualMarkup);
|
|
||||||
}
|
|
||||||
|
|
||||||
function data()
|
|
||||||
{
|
|
||||||
$data = array();
|
|
||||||
|
|
||||||
$Folder = new DirectoryIterator($this->dataDir);
|
|
||||||
|
|
||||||
foreach ($Folder as $File)
|
|
||||||
{
|
|
||||||
/** @var $File DirectoryIterator */
|
|
||||||
|
|
||||||
if ( ! $File->isFile())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$filename = $File->getFilename();
|
|
||||||
|
|
||||||
$extension = pathinfo($filename, PATHINFO_EXTENSION);
|
|
||||||
|
|
||||||
if ($extension !== 'md')
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$basename = $File->getBasename('.md');
|
|
||||||
|
|
||||||
if (file_exists($this->dataDir . $basename . '.html'))
|
|
||||||
{
|
|
||||||
$data []= array($basename);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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><div><em>content</em></div></p>
|
|
||||||
<p>sparse:</p>
|
|
||||||
<p><div>
|
|
||||||
<div class="inner">
|
|
||||||
<em>content</em>
|
|
||||||
</div>
|
|
||||||
</div></p>
|
|
||||||
<p>paragraph</p>
|
|
||||||
<p><style type="text/css"></p>
|
|
||||||
<pre><code>p {
|
|
||||||
color: red;
|
|
||||||
}</code></pre>
|
|
||||||
<p></style></p>
|
|
||||||
EXPECTED_HTML;
|
|
||||||
$parsedownWithNoMarkup = new Parsedown();
|
|
||||||
$parsedownWithNoMarkup->setMarkupEscaped(true);
|
|
||||||
$this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml));
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user