hl = new Highlight\Highlighter(); $this->tests = array(); $d = dir(__DIR__ . DIRECTORY_SEPARATOR . "markup"); while (false !== ($lang = $d->read())) { if ($lang[0] !== ".") { $this->tests[$lang] = array(); $d2 = dir(__DIR__ . DIRECTORY_SEPARATOR . "markup" . DIRECTORY_SEPARATOR . $lang); while (false !== ($test = $d2->read())) { if (substr($test, - 11) == ".expect.txt") { $this->tests[$lang][] = substr($test, 0, - 11); } } $d2->close(); } } $d->close(); } private function getTestData($language, $test) { return (object) array( "code" => file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . "markup" . DIRECTORY_SEPARATOR . $language . DIRECTORY_SEPARATOR . "$test.txt"), "expected" => file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . "markup" . DIRECTORY_SEPARATOR . $language . DIRECTORY_SEPARATOR . "$test.expect.txt") ); } public function testMarkup() { foreach ($this->tests as $lng => $tests) { foreach ($tests as $test) { $data = $this->getTestData($lng, $test); $this->assertEquals($data->expected, $this->hl->highlight($lng, $data->code)->value); } } } }