From c62365adc4488e1c35a8f45ea86f7d4a22bd58a0 Mon Sep 17 00:00:00 2001 From: Emanuil Rusev Date: Fri, 26 Sep 2014 02:04:25 +0300 Subject: [PATCH] improve extensibility of test case --- phpunit.xml.dist | 2 +- test/ParsedownTest.php | 133 +++++++++++++++++++++++++++++++++++++++++ test/Test.php | 107 --------------------------------- 3 files changed, 134 insertions(+), 108 deletions(-) create mode 100644 test/ParsedownTest.php delete mode 100644 test/Test.php diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 875167a..b2d5e9d 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -2,7 +2,7 @@ - test/Test.php + test/ParsedownTest.php \ No newline at end of file diff --git a/test/ParsedownTest.php b/test/ParsedownTest.php new file mode 100644 index 0000000..3763372 --- /dev/null +++ b/test/ParsedownTest.php @@ -0,0 +1,133 @@ +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 = <<_content_ + +sparse: + +
+
+_content_ +
+
+ +paragraph + + +MARKDOWN_WITH_MARKUP; + + $expectedHtml = <<<div>content</div>

+

sparse:

+

<div> +<div class="inner"> +content +</div> +</div>

+

paragraph

+

<style type="text/css">

+
p {
+    color: red;
+}
+

</style>

+EXPECTED_HTML; + $parsedownWithNoMarkup = new Parsedown(); + $parsedownWithNoMarkup->setMarkupEscaped(true); + $this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml)); + } +} diff --git a/test/Test.php b/test/Test.php deleted file mode 100644 index c0818a9..0000000 --- a/test/Test.php +++ /dev/null @@ -1,107 +0,0 @@ -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 = <<_content_ - -sparse: - -
-
-_content_ -
-
- -paragraph - - -MARKDOWN_WITH_MARKUP; - - $expectedHtml = <<<div>content</div>

-

sparse:

-

<div> -<div class="inner"> -content -</div> -</div>

-

paragraph

-

<style type="text/css">

-
p {
-    color: red;
-}
-

</style>

-EXPECTED_HTML; - $parsedownWithNoMarkup = new Parsedown(); - $parsedownWithNoMarkup->setMarkupEscaped(true); - $this->assertEquals($expectedHtml, $parsedownWithNoMarkup->text($markdownWithHtml)); - } -}