diff --git a/tests/DataDrivenTestCase.php b/tests/DataDrivenTestCase.php new file mode 100644 index 0000000..876d89c --- /dev/null +++ b/tests/DataDrivenTestCase.php @@ -0,0 +1,51 @@ + [ + $this->getTestData('W3C', 'source.html', 'result.json') + ], + 'Itemref & src based tags' => [ + $this->getTestData('Itemref', 'source.html', 'result.json') + ], + 'Object & Data tags' => [ + $this->getTestData('Object & Data', 'source.html', 'result.json') + ], + 'Itemid & Content attributes' => [ + $this->getTestData('Itemid & Content', 'source.html', 'result.json') + ], + ]; + } + + private function getTestData($folderName, $sourceName, $resultName) + { + $folderPath = __DIR__.'/data/'.$folderName.'/'; + + $source = file_get_contents($folderPath . $sourceName); + $result = file_get_contents($folderPath . $resultName); + + $uri = ''; + // Set $uri if URI specified in test data + if (preg_match('//', $source, $matches)) { + $uri = $matches[1]; + } + + return [ + 'path' => $folderPath . $sourceName, + 'uri' => $uri, + 'source' => $source, // HTML String + 'result' => $result, // JSON String + ]; + } +} diff --git a/tests/MicrodataParserTest.php b/tests/MicrodataParserTest.php index d9c4480..41630c1 100644 --- a/tests/MicrodataParserTest.php +++ b/tests/MicrodataParserTest.php @@ -5,13 +5,8 @@ namespace YusufKandemir\MicrodataParser\Tests; use YusufKandemir\MicrodataParser\MicrodataDOMDocument; use YusufKandemir\MicrodataParser\MicrodataParser; -class MicrodataParserTest extends \PHPUnit\Framework\TestCase +class MicrodataParserTest extends DataDrivenTestCase { - protected function setUp() - { - libxml_use_internal_errors(true); // Ignore warnings of DOMDocument::loadHTML check - } - protected function getParser($data) { $dom = new MicrodataDOMDocument; @@ -79,46 +74,4 @@ class MicrodataParserTest extends \PHPUnit\Framework\TestCase $this->assertContains($baseUri, $resultAfterUri); } - - /** - * @todo Provide more test data - */ - public function data() - { - return [ - // https://www.w3.org/TR/microdata/#ex-jsonconv - 'W3C Example' => [ - $this->getTestData('W3C', 'source.html', 'result.json') - ], - 'Itemref & src based tags' => [ - $this->getTestData('Itemref', 'source.html', 'result.json') - ], - 'Object & Data tags' => [ - $this->getTestData('Object & Data', 'source.html', 'result.json') - ], - 'Itemid & Content attributes' => [ - $this->getTestData('Itemid & Content', 'source.html', 'result.json') - ], - ]; - } - - private function getTestData($folderName, $sourceName, $resultName) - { - $folderPath = __DIR__.'/data/'.$folderName.'/'; - - $source = file_get_contents($folderPath . $sourceName); - $result = file_get_contents($folderPath . $resultName); - - $uri = ''; - // Set $uri if URI specified in test data - if (preg_match('//', $source, $matches)) { - $uri = $matches[1]; - } - - return [ - 'uri' => $uri, - 'source' => $source, // HTML String - 'result' => $result, // JSON String - ]; - } }