PDF converter * distributed under the OSL-3.0 License * * @package Html2pdf * @author Laurent MINGUET * @copyright 2017 Laurent MINGUET */ namespace Spipu\Html2Pdf\Tests; /** * Class ExamplesTest */ class ExamplesTest extends \PHPUnit_Framework_TestCase { /** * Launch a example * * @param string $example code of the example * * @return void * @throws \Exception */ protected function launchExample($example) { $filename = dirname(dirname(dirname(__FILE__))).'/examples/'.$example.'.php'; if (!is_file($filename)) { throw new \Exception('The filename of the example ['.$example.'] does not exist!'); } $folder = dirname($filename); // get the content of the file $content = file_get_contents($filename); // keep only the example $parts = explode('try {', $content); $parts = explode('} catch', $parts[1]); $content = $parts[0]; // replace the good path $content = str_replace('dirname(__FILE__)', "'$folder'", $content); // add the class to use $content = 'use Spipu\Html2Pdf\Html2Pdf; '.$content; // get the output $regexp = '/\$html2pdf->output\(([^\)]*)\);/'; $replace = 'return $html2pdf->output(\'test.pdf\', \'S\');'; $content = preg_replace($regexp, $replace, $content); // execute $currentDir = getcwd(); chdir($folder); $result = eval($content); chdir($currentDir); // test $this->assertNotEmpty($result); } /** * test: about * * @return void */ public function testAbout() { $this->launchExample('about'); } /** * test: bookmark * * @return void */ public function testBookmark() { $this->launchExample('bookmark'); } /** * test: bookmark * * @return void */ public function testBalloon() { $this->launchExample('balloon'); } /** * test: example01 * * @return void */ public function testExample01() { $this->launchExample('example01'); } /** * test: example02 * * @return void */ public function testExample02() { $this->launchExample('example02'); } /** * test: example03 * * @return void */ public function testExample03() { $this->launchExample('example03'); } /** * test: example04 * * @return void */ public function testExample04() { $this->launchExample('example04'); } /** * test: example05 * * @return void */ public function testExample05() { $this->launchExample('example05'); } /** * test: example06 * * @return void */ public function testExample06() { $this->launchExample('example06'); } /** * test: example07 * * @return void */ public function testExample07() { $this->launchExample('example07'); } /** * test: example08 * * @return void */ public function testExample08() { $this->launchExample('example08'); } /** * test: example10 * * @return void */ public function testExample10() { $this->launchExample('example10'); } /** * test: example11 * * @return void */ public function testExample11() { $this->launchExample('example11'); } /** * test: example12 * * @return void */ public function testExample12() { $this->launchExample('example12'); } /** * test: example13 * * @return void */ public function testExample13() { $this->launchExample('example13'); } /** * test: example14 * * @return void */ public function testExample14() { $this->launchExample('example14'); } /** * test: forms * * @return void */ public function testForms() { $this->launchExample('forms'); } /** * test: groups * * @return void */ public function testGroups() { $this->launchExample('groups'); } /** * test: qrcode * * @return void */ public function testQrcode() { $this->launchExample('qrcode'); } /** * test: radius * * @return void */ public function testRadius() { $this->launchExample('radius'); } /** * test: regle * * @return void */ public function testMeasure() { $this->launchExample('measure'); } /** * test: svg * * @return void */ public function testSvg() { $this->launchExample('svg'); } /** * test: svg_tiger * * @return void */ public function testSvgTiger() { $this->launchExample('svg_tiger'); } /** * test: svg_tree * * @return void */ public function testSvgTree() { $this->launchExample('svg_tree'); } /** * test: ticket * * @return void */ public function testTicket() { $this->launchExample('ticket'); } /** * test: utf8 * * @return void */ public function testUtf8() { $this->launchExample('utf8'); } }