diff --git a/test/integration/PhpMarkdownTest.php b/test/integration/PhpMarkdownTest.php index ce73b6d..ded3a3d 100644 --- a/test/integration/PhpMarkdownTest.php +++ b/test/integration/PhpMarkdownTest.php @@ -7,15 +7,18 @@ use Michelf\MarkdownExtra; class PhpMarkdownTest extends TestCase { /** + * Returns all php-markdown.mdtest tests * @return array */ - public function dataProviderForRegular() { + public function dataProviderForPhpMarkdown() { $dir = TEST_RESOURCES_ROOT . '/php-markdown.mdtest'; return MarkdownTestHelper::getInputOutputPaths($dir); } /** - * @dataProvider dataProviderForRegular + * Runs php-markdown.mdtest against Markdown::defaultTransform + * + * @dataProvider dataProviderForPhpMarkdown * * @param string $inputPath Input markdown path * @param string $htmlPath File path of expected transformed output (X)HTML @@ -37,6 +40,49 @@ class PhpMarkdownTest extends TestCase ); } + /** + * Returns all php-markdown.mdtest tests EXCEPT Emphasis test. + * @return array + */ + public function dataProviderForPhpMarkdownExceptEmphasis() + { + $dir = TEST_RESOURCES_ROOT . '/php-markdown.mdtest'; + $allTests = MarkdownTestHelper::getInputOutputPaths($dir); + + foreach ($allTests as $index => $test) { + // Because MarkdownExtra treats underscore emphasis differently, this one test has to be excluded + if (preg_match('~/Emphasis\.text$~', $test[0])) { + unset($allTests[$index]); + } + } + + return array_values($allTests); + } + + /** + * Runs php-markdown.mdtest against MarkdownExtra::defaultTransform + * + * @dataProvider dataProviderForPhpMarkdownExceptEmphasis + * + * @param $inputPath + * @param $htmlPath + * @param bool $xhtml + */ + public function testPhpMarkdownMdTestWithMarkdownExtra($inputPath, $htmlPath, $xhtml = false) + { + $inputMarkdown = file_get_contents($inputPath); + $expectedHtml = file_get_contents($htmlPath); + + $result = MarkdownExtra::defaultTransform($inputMarkdown); + + MarkdownTestHelper::assertSameNormalized( + $expectedHtml, + $result, + "Markdown in $inputPath converts exactly to expected $htmlPath", + $xhtml + ); + } + /** * @return array */ @@ -100,4 +146,28 @@ class PhpMarkdownTest extends TestCase $xhtml ); } + + /** + * Runs markdown.mdtest against MarkdownExtra::defaultTransform + * + * @dataProvider dataProviderForRegularMarkdown + * + * @param $inputPath + * @param $htmlPath + * @param bool $xhtml + */ + public function testMarkdownMdTestWithMarkdownExtra($inputPath, $htmlPath, $xhtml = false) + { + $inputMarkdown = file_get_contents($inputPath); + $expectedHtml = file_get_contents($htmlPath); + + $result = MarkdownExtra::defaultTransform($inputMarkdown); + + MarkdownTestHelper::assertSameNormalized( + $expectedHtml, + $result, + "Markdown in $inputPath converts exactly to expected $htmlPath", + $xhtml + ); + } }