Example #1
0
 public function test_getDefinitions()
 {
     $x = new Template(__DIR__ . "/files/templates/definitionsTest.tmpl");
     $contents = file_get_contents($x->origin);
     $this->assertEquals($x->render(), $contents, "template output differs from file contents");
     $staticOut = Template::getTemplateVarDefinitions($contents);
     $normalOut = $x->getVarDefinitions($contents);
     $this->assertEquals($x->getVarDefinitions(), $x->getVarDefinitions($contents), "output differs from file versus file contents as argument");
     $testOut = $x->getVarDefinitions(file_get_contents(__DIR__ . '/files/templates/main.tmpl'));
     $this->assertEquals($staticOut, $normalOut, "static output differs from function call output");
     $this->assertNotEquals($staticOut, $testOut, "static output does NOT differ from test that uses a different file [MUST BE DIFFERENT]");
     $this->assertNotEquals($normalOut, $testOut, "normal output does NOT differ from test that uses a different file [MUST BE DIFFERENT]");
     $expectations = array('var1' => 2, 'var2' => 1, 'stuff4' => 1);
     $leftOvers = $expectations;
     foreach ($expectations as $name => $occurrences) {
         $this->assertTrue(isset($normalOut[$name]), "missing '{$name}' from output");
         $this->assertEquals($occurrences, $normalOut[$name], "invalid number of occurrences for '{$name}'");
         unset($leftOvers[$name]);
     }
     $this->assertEquals(array(), $leftOvers, "found some unexpected leftovers");
 }