(.|[\n])*/m', '', $spec); preg_replace_callback( '/^\.\n([\s\S]*?)^\.\n([\s\S]*?)^\.$|^#{1,6} *(.*)$/m', function($matches) use (&$tests, &$currentSection, &$testsCount) { if (isset($matches[3]) and $matches[3]) { $currentSection = $matches[3]; } else { $testsCount++; $markdown = preg_replace('/→/', "\t", $matches[1]); $tests []= array( $markdown, // markdown $matches[2], // html $currentSection, // section $testsCount, // number ); } }, $spec ); return $tests; } /** * @dataProvider getCommonMarkRules */ public function testAgainstCommonMark($markdown, $expectedHtml, $section, $number) { $parsedown = new Parsedown(); $actualHtml = $parsedown->text($markdown); // Trim for better compatibility of the HTML output $actualHtml = trim($actualHtml); $expectedHtml = trim($expectedHtml); $this->assertEquals($expectedHtml, $actualHtml); } }