aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/michelf/php-markdown/test/integration/PhpMarkdownTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/michelf/php-markdown/test/integration/PhpMarkdownTest.php')
-rw-r--r--vendor/michelf/php-markdown/test/integration/PhpMarkdownTest.php173
1 files changed, 173 insertions, 0 deletions
diff --git a/vendor/michelf/php-markdown/test/integration/PhpMarkdownTest.php b/vendor/michelf/php-markdown/test/integration/PhpMarkdownTest.php
new file mode 100644
index 000000000..ded3a3d12
--- /dev/null
+++ b/vendor/michelf/php-markdown/test/integration/PhpMarkdownTest.php
@@ -0,0 +1,173 @@
+<?php
+
+use PHPUnit\Framework\TestCase;
+use Michelf\Markdown;
+use Michelf\MarkdownExtra;
+
+class PhpMarkdownTest extends TestCase
+{
+ /**
+ * Returns all php-markdown.mdtest tests
+ * @return array
+ */
+ public function dataProviderForPhpMarkdown() {
+ $dir = TEST_RESOURCES_ROOT . '/php-markdown.mdtest';
+ return MarkdownTestHelper::getInputOutputPaths($dir);
+ }
+
+ /**
+ * 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
+ *
+ * @param bool $xhtml True if XHTML. Otherwise, HTML is assumed.
+ *
+ * @return void
+ */
+ public function testTransformingOfPhpMarkdown($inputPath, $htmlPath, $xhtml = false) {
+ $inputMarkdown = file_get_contents($inputPath);
+ $expectedHtml = file_get_contents($htmlPath);
+ $result = Markdown::defaultTransform($inputMarkdown);
+
+ MarkdownTestHelper::assertSameNormalized(
+ $expectedHtml,
+ $result,
+ "Markdown in $inputPath converts exactly to expected $htmlPath",
+ $xhtml
+ );
+ }
+
+ /**
+ * 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
+ */
+ public function dataProviderForMarkdownExtra() {
+ $dir = TEST_RESOURCES_ROOT . '/php-markdown-extra.mdtest';
+ return MarkdownTestHelper::getInputOutputPaths($dir);
+ }
+
+ /**
+ * @dataProvider dataProviderForMarkdownExtra
+ *
+ * @param string $inputPath Input markdown path
+ * @param string $htmlPath File path of expected transformed output (X)HTML
+ *
+ * @param bool $xhtml True if XHTML. Otherwise, HTML is assumed.
+ *
+ * @return void
+ */
+ public function testTransformingOfMarkdownExtra($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
+ */
+ public function dataProviderForRegularMarkdown()
+ {
+ $dir = TEST_RESOURCES_ROOT . '/markdown.mdtest';
+ return MarkdownTestHelper::getInputOutputPaths($dir);
+ }
+
+ /**
+ * @dataProvider dataProviderForRegularMarkdown
+ *
+ * @param string $inputPath Input markdown path
+ * @param string $htmlPath File path of expected transformed output (X)HTML
+ *
+ * @param bool $xhtml True if XHTML. Otherwise, HTML is assumed.
+ *
+ * @return void
+ */
+ public function testTransformingOfRegularMarkdown($inputPath, $htmlPath, $xhtml = false)
+ {
+ $inputMarkdown = file_get_contents($inputPath);
+ $expectedHtml = file_get_contents($htmlPath);
+ $result = Markdown::defaultTransform($inputMarkdown);
+
+ MarkdownTestHelper::assertSameNormalized(
+ $expectedHtml,
+ $result,
+ "Markdown in $inputPath converts exactly to expected $htmlPath",
+ $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
+ );
+ }
+}