/tests/templateTest.php
PHP | 95 lines | 48 code | 8 blank | 39 comment | 2 complexity | cd45de9e4f9238a93a39991137d8d7b3 MD5 | raw file
- <?php
- use PHPUnit\Framework\TestCase;
- class Foo_Bar {
- static $Bar = 'haanga';
- static $Arr = array('foo', 'Bar' => 'Foo');
- protected $foo = 'foo';
- public $bar = 'bar';
- static function something()
- {
- return 'something';
- }
- function method() {
- return $this->foo;
- }
- function bar() {
- return "something else";
- }
- }
- /**
- * @runTestsInSeparateProcess
- */
- class templateTest extends TestCase
- {
- public function init($test_file, &$expected)
- {
- Haanga_Compiler::setOption('allow_exec', true);
- if ($test_file === '/assert_templates/strip_whitespace.tpl') {
- Haanga_Compiler::setOption('strip_whitespace', TRUE);
- $expected = rtrim($expected). ' '; /* weird output */
- } else {
- Haanga_Compiler::setOption('strip_whitespace', FALSE);
- }
- }
- /**
- * @dataProvider tplProvider
- */
- public function testRuntime($test_file, $data, $expected)
- {
- $this->init($test_file, $expected);
- $output = Haanga::Load($test_file, $data, TRUE);
- $this->assertEquals($output, $expected);
- $this->assertTrue(filemtime(__DIR__ . $test_file) <= filemtime(__DIR__ . '/tmp/assert_templates/' . basename($test_file) . '.php'));
- }
- /**
- * @dataProvider tplProvider
- */
- public function testIsCached($test_file, $data, $expected)
- {
- /* same as above, but we ensure that the file wasn't compiled */
- $this->init($test_file, $expected);
- $output = Haanga::Load($test_file, $data, TRUE);
- $this->assertEquals($output, $expected);
- $this->assertFalse(Haanga::$has_compiled);
- }
- public static function tplProvider()
- {
- $datas = array();
- foreach (glob(__DIR__ . "/assert_templates/*.tpl") as $test_file) {
- $data = array();
- $data_file = substr($test_file, 0, -3)."php";
- $expected = substr($test_file, 0, -3)."html";
- $test_file = substr($test_file, strlen(__DIR__));
- if (!is_file($expected)) {
- if (!is_file($expected.".php")) {
- continue;
- }
- $expected .= ".php";
- ob_start();
- require $expected;
- $expected = ob_get_clean();
- } else {
- $expected = file_get_contents($expected);
- }
- if (is_file($data_file)) {
- try {
- include $data_file;
- } Catch (Exception $e) {
- continue;
- }
- }
- $datas[] = array($test_file, $data, $expected);
- }
- return $datas;
- }
- }