setUrlsLinked(false); $actualHtml = $Parsedown->text($markdown); $actualHtml = $this->normalizeMarkup($actualHtml); $this->assertEquals($expectedHtml, $actualHtml); } function data() { $spec = file_get_contents(self::SPEC_URL); $spec = strstr($spec, '', true); $tests = array(); $currentSection = ''; preg_replace_callback( '/^\.\n([\s\S]*?)^\.\n([\s\S]*?)^\.$|^#{1,6} *(.*)$/m', function($matches) use ( & $tests, & $currentSection, & $testCount) { if (isset($matches[3]) and $matches[3]) { $currentSection = $matches[3]; } else { $testCount++; $markdown = $matches[1]; $markdown = preg_replace('/→/', "\t", $markdown); $expectedHtml = $matches[2]; $expectedHtml = $this->normalizeMarkup($expectedHtml); $tests []= array( $currentSection, # section $markdown, # markdown $expectedHtml, # html ); } }, $spec ); return $tests; } private function normalizeMarkup($markup) { $markup = preg_replace("/\n+/", "\n", $markup); $markup = preg_replace('/^\s+/m', '', $markup); $markup = preg_replace('/^((?:<[\w]+>)+)\n/m', '$1', $markup); $markup = preg_replace('/\n((?:<\/[\w]+>)+)$/m', '$1', $markup); $markup = trim($markup); return $markup; } }